BigQueryでエクセルのLENBを計算する(半角を1、全角を2として文字数を数える)
例えばAdwords(Google広告)へのkwや広告文の入稿データの作成を行う場合、文字数のカウントをエクセルのLENBで行うことが多いと思う。BigQuery上でも同様の文字数カウントを実現する。
LENBを出したいカラム名がkeywordの場合、以下のように書けば良い。
LENGTH(keyword)+ LENGTH(REGEXP_REPLACE(keyword,r'[ -~。-゚]',''))
keywordの文字数(LENGTH(keyword))
と、
半角文字を削除(REGEXP_REPLACE(keyword,r'[ -~。-゚]',''))したあとに残った文字(=全角文字)の数
を足している。
確認用sql
#StandardSQL WITH test_data AS ( SELECT * FROM UNNEST( [ "あいうeo", "カき く", "keko", "Google 広告" ]) AS keyword ) SELECT keyword, LENGTH(keyword), #単純な文字数 REGEXP_REPLACE(keyword,r'[ -~。-゚]','') , #半角を空文字に置換 LENGTH(REGEXP_REPLACE(keyword,r'[ -~。-゚]','')), #半角を空文字に置換した文字列の長さ LENGTH(keyword) + LENGTH(REGEXP_REPLACE(keyword,r'[ -~。-゚]','')) # 半角を空文字に置換して、残った文字数を更に足す。 AS lenB FROM test_data