我是一個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
我想數着每個URL發生在X天的間隔,從給定日起的每個事件的數量。例如:我如何在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值。
一般來說,我希望能夠解決:從X日開始,從Y日開始,並使用每個間隔的最後日期標記間隔。
如果需要更多說明,請讓我知道。
如果你有興趣,我也問過關於使用滾動窗口對這些數據進行分組的StackOverflow(和已得到的答案)的類似問題:initial question和follow-up。
謝謝!
不是一個完整的答案,但你可以利用['GENERATE_DATE_ARRAY'(HTTPS的://雲.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#generate_date_array)如果您需要加入的日期序列。 –
我接受的答案實際上是使用GENERATE_DATE_ARRAY()和join! –