データアナリストのメモ帳

データアナリストのメモ帳

IT企業で働くデータアナリストのブログ

【SQL】STRING_AGGで文字列をGROUP BYしてカンマでつなげる【BigQuery】

複数行にまたがる文字列のレコードを、GROUP BYで1行にまとめる方法です。
文字列をひとまとめにしたい時に便利です。 STRING_AGGを使います。

SELECT
  gender,
  STRING_AGG(name, ', ') AS names
FROM UNNEST(ARRAY<STRUCT<gender STRING, name STRING>>
  [
  ('male', 'taro'),
  ('male', 'jiro'),
  ('female', 'aiko'),
  ('female', 'hanako'),
  ('male', 'saburo')
  ])
GROUP BY gender

こういう結果になります。 https://cdn-ak.f.st-hatena.com/images/fotolife/s/stinkydofu/20210225/20210225101408.png

参考: https://cloud.google.com/bigquery/docs/reference/standard-sql/aggregate_functions?hl=ja#string_agg