BigQueryで重複IDをもつ行をひとつにするやつ
概要
重複してほしくないカラムがあるとき、その重複行を削除するクエリ
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
で書き直したが、結局ダメだった。
Author And Source
この問題について(BigQueryで重複IDをもつ行をひとつにするやつ), 我々は、より多くの情報をここで見つけました https://qiita.com/taniyam/items/599d11ebc8e830818dec著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .