IddatetargetArray
A1232023-12-01B01
A1232023-12-01C01
A1232023-12-01D01

上記のデータに関して、targetArrayを配列にまとめて以下のようにしたい

IddatetargetArray
A1232023-12-01["B01", "C01", "D01"]
WITH base AS (

  -- targetArray項目を配列化する為に一度 group byでまとめる
  SELECT
    Id,
    date,
    -- 配列項目はそのままだとgroup byで扱えずエラーとなる為、一時的にstring型に変換する
    ARRAY_TO_STRING(targetArray, ",") as targetArrays,

  FROM
    dataset.table

  GROUP BY
    1, 2
)

-- SPLITを使って、カンマ毎に区切りを入れて配列に変換する
SELECT
  Id,
  date,
  SPLIT(targetArrays, ",") as targetArrays

FROM
  base
おすすめの記事