データの分析や処理に便利なBigQuery(BQ)。
大規模データの処理に優れており、テーブルに保存した大きなデータでも短時間で集計することができる。
そんなBQの機能のひとつに、配列(array)がある。
1行のデータの中に複数の要素を持つ [1,2,3]
のような形のデータを持つことができる。
しかし既存のテーブルからどのように配列を作ればいいのか。
そこで今回はBigQueryで列(column)を配列(array)に変換する方法について紹介する。
この記事を書いている人
記事を読むメリット
BigQueryで列(column)を配列(array)に変換する方法がわかり、配列形式のデータを自由に作ることができるようになる。
データ準備
まずはデータを準備する。
テーブル名 array_sample
として以下のCSVをインポート。
key,val a,1 a,2 a,3 b,2 b,4 b,5 c,3 c,2 c,-1
するとカラム2つのテーブルができただろう。
BigQueryで列(column)を配列(array)に変換する方法
BigQueryで列(column)を配列(array)に変換する方法、それは ARRAY_AGG()
を用いる。
ARRAY_AGG()
は集計用関数のひとつで、配列を返す。
使い方は以下の通り。
SQL
SELECT key, ARRAY_AGG(val) as val_array FROM test.array_sample GROUP BY key
SQLの結果はこのようになる。
結果
Row | key | val_array |
1 | a | 1 |
2 | ||
3 | ||
2 | b | 2 |
4 | ||
5 | ||
3 | c | 3 |
2 | ||
-1 |
key毎に複数のvalの値が配列に変換された。
まとめ
今回はBigQueryで列(column)を配列(array)に変換する方法について解説した。
BigQueryで列(column)を配列(array)に変換する方法は以下の通り。
ココがポイント
集計関数の ARRAY_AGG()
を用いる。
他にもBigQueryに関する記事もあるので、興味があれば見てみて欲しい。