/bin/osh

ソフトフェアエンジニアリングしたりデータ分析したりプロジェクトマネジメントの勉強したりする人のブログ

BigQueryでArrayの各要素をそれぞれ別の行にしたいとき

タイトルが難しい。 よく忘れるのでメモ。

要するに

これを

f:id:ushiumi:20190405140932p:plain

こうしたい

f:id:ushiumi:20190405140951p:plain

UNNESTを使ってクロスジョインみたいにすればできる。

WITH dataset AS (
  SELECT 1 AS id, ARRAY['foo', 'bar'] AS arr
  UNION ALL SELECT 2, ARRAY['foo', 'bar', 'baz'])

SELECT
  id,
  item
FROM dataset, UNNEST(arr) AS item

参考:

https://cloud.google.com/bigquery/docs/reference/standard-sql/arrays?hl=ja#querying-nested-arrays