Id | date | targetArray |
---|---|---|
A123 | 2023-12-01 | B01 |
A123 | 2023-12-01 | C01 |
A123 | 2023-12-01 | D01 |
上記のデータに関して、targetArrayを配列にまとめて以下のようにしたい
Id | date | targetArray |
---|---|---|
A123 | 2023-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
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
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