概要
重複してほしくないカラムがあるとき、その重複行を削除するクエリ
SELECT AS VALUE
ARRAY_AGG(t)[OFFSET(0)]
FROM `hoge.fuga.piyo` AS t
GROUP BY choufuku_column
SELECT
句で呼ぶテーブル名ってSTRUCT
なんですね。今まで何気なく使ってたが初めて認識してちょっと感動した。
ちなみに公式で推奨されるもの。
# standardSQL
SELECT
* EXCEPT(row_number)
FROM (
SELECT
*,
ROW_NUMBER()
OVER (PARTITION BY ID_COLUMN) row_number
FROM
`TABLE_NAME`)
WHERE
row_number = 1
余談
ストリーミングAPIで格納した重複検知用のID付のテーブルをマテリアライズドビューで重複除外しようと考えた。
しかし、マテリアライズドビューにはROW_NUMBER()が使えないとのこと。
なのでARRAY_AGG
で書き直したが、結局ダメだった。