DB

BigQueryで列(column)を配列(array)に変換する方法

BigQueryで列(column)を配列(array)に変換する方法

BigQueryでどうやって配列作るの?

データの分析や処理に便利なBigQuery(BQ)

大規模データの処理に優れており、テーブルに保存した大きなデータでも短時間で集計することができる。


そんなBQの機能のひとつに、配列(array)がある。

1行のデータの中に複数の要素を持つ [1,2,3] のような形のデータを持つことができる。

しかし既存のテーブルからどのように配列を作ればいいのか。

そこで今回はBigQueryで列(column)を配列(array)に変換する方法について紹介する。

この記事を書いている人


システムエンジニア、AIエンジニアと、IT業界で10年以上働いている中堅。PythonとSQLが得意。

記事を読むメリット

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)に変換する方法

how

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() を用いる。

GROUP BYで集計できるのはわかりやすいですね



他にもBigQueryに関する記事もあるので、興味があれば見てみて欲しい。

ITipsと同じようなブログを作る方法

ブログに興味がありますか?

もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

ランキング参加中

にほんブログ村 IT技術ブログへ

他にもブログやSNSで紹介してくれると励みになります。

はてブのコメントで酷評されると泣きます(´;ω;`)

-DB
-

© 2024 ITips