唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

BigQueryの配列にUNNEST()でWITH OFFSETして添字を取得する

以前BigQueryで配列をzipする記事を書きました
「これを使って配列に添字をくっつけることができる」的なことを書いていたのですが、添字を得るだけならWITH OFFSETと書くだけでよいことに気づいたのでメモしておきます
sucrose.hatenablog.com

上の記事ではUDFを使ったりCROSS JOINをしたりして無理やり添字をつけていたのですが、以下のように書くだけで添字を得られるようです

#standardSQL
WITH data AS (SELECT SPLIT('a,b,c', ',') AS tokens)

SELECT
  i,
  token
FROM data, UNNEST(tokens) AS token WITH OFFSET AS i
ORDER BY i

f:id:sucrose:20180524223554p:plain