

データの分析や処理に便利な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に関する記事もあるので、興味があれば見てみて欲しい。



