2012-06-15 75 views
9

BigQueryのレコードごとに行番号を取得する方法はありますか? (仕様から、私はそれについて何も見ていない)NTH()関数がありますが、それは繰り返しフィールドに適用されます。BigQueryの行番号?

TOP()またはLIMIT関数の使用など、BigQueryで行番号が不要なシナリオがいくつかあります。しかし、累積和()などのいくつかの分析関数をシミュレートする必要があります。そのためには、各レコードを連続番号で識別する必要があります。この問題を回避するには?

ご協力いただきありがとうございます。

レオ

答えて

0

ロー識別子は公開されていません。インポート時にデータに追加するだけですか?

+0

感謝。インポートで行識別子をインポートすることもできますが、元のデータにグループ関数を適用した後に行番号が必要になるため、便利ではありません。 –

+0

したがって、基礎となるデータの各行を表す行#ではなく、結果行を検索していますか? –

+1

テーブルにデータを追加するときに_row id_を追加すると、実用的ではありません.... – user454322

0

< =のテーブルに自分自身を参加させてROW_NUMBER()関数が不足している可能性があると思っていました。 )。 BigQueryはまっすぐな "="の結合だけをサポートしています。

もう一度沸騰。私はこれがBQでは不可能だと思う。

19

良いニュース:BigQueryにrow_number関数が追加されました。

簡単な例:

SELECT [field], ROW_NUMBER() OVER() 
FROM [table] 
GROUP BY [field] 

より複雑な作業例:あなたの答えライアンため

SELECT 
    ROW_NUMBER() OVER() row_number, 
    contributor_username, 
    count, 
FROM (
    SELECT contributor_username, COUNT(*) count, 
    FROM [publicdata:samples.wikipedia] 
    GROUP BY contributor_username 
    ORDER BY COUNT DESC 
    LIMIT 5) 
+0

ウィンドウ機能として追加されました: https://cloud.google.com/bigquery/query-reference –

+0

ROW_NUMBER列ですか? (すなわち、ROW_NUMBER()> 10など) – Praxiteles

+0

サブクエリ。必要に応じて、完全な回答のために新しい質問を投稿してください! –