アクセス解析担当者のBigQuery日記

普段はアクセス解析やウェブ広告の運用をしています。主にBigQueryについて、記録していきます。

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