私は、グループ化の問題に取り組んでいるBigQueryとSQL初心者です。 BigQueryで標準SQLを使用すると、データをX日ごとにグループ化したいと思います。ここでは、データのテーブルです:BigQueryと標準SQL:任意の日間隔でグループ化する方法
event_id | url | timestamp
-----------------------------------------------------------
xx a.html 2016-10-18 15:55:16 UTC
xx a.html 2016-10-19 16:68:55 UTC
xx a.html 2016-10-25 20:55:57 UTC
yy b.html 2016-10-18 15:58:09 UTC
yy b.html 2016-10-18 08:32:43 UTC
zz a.html 2016-10-20 04:44:22 UTC
zz c.html 2016-10-21 02:12:34 UTC
私は与えられた日から、X日の間隔で各URLに発生した各イベントの数をカウントします。例:3日間隔でグループ化するにはどうすればよいですか?最初の間隔は2016-10-18 00:00:00 UTCから始まります。さらに、間隔の3日目を各行に割り当てることはできますか?出力例:
event_id | url | count | 3dayIntervalLabel
-----------------------------------------------------------
xx a.html 2 2016-10-20 --> [18th thru 20th]
yy b.html 2 2016-10-20
zz a.html 1 2016-10-20
zz c.html 1 2016-10-23 --> [21th thru 23th]
xx a.html 1 2016-10-26 --> [24th thru 26th]
3dayIntervalLabelの値を明確にするために3つの注釈を追加しました。
一般的には、Y日からX日の間隔でグループ化し、各間隔の最終日を使用して間隔にラベルを付けることを考えています。
もっと詳しい説明が必要な場合は教えてください。
ローリングウィンドウ(initial questionとfollow-up)を使用して、このデータをグループ化することについてStackOverflow(および取得した回答)についても同様の質問をしました。
ありがとうございます!
ない完全な答えが、あなたは[ 'GENERATE_DATE_ARRAY'](HTTPSを利用することができるかもしれ://クラウド.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#generate_date_array)。 –
私が受け入れた答えは実際にGENERATE_DATE_ARRAY()と結合を利用しています! –