[英]In BigQuery, group by where date is <= each unique date in table column
我們有示例數據t1
,我們正在嘗試從下面的查詢中創建最終的 output,其中數據中每個唯一日期有 1 行
with
t1 as (
select '2022-12-01' as gameDate, 3 as stat1, 7 as stat2 union all
select '2022-12-01' as gameDate, 2 as stat1, 5 as stat2 union all
select '2022-12-01' as gameDate, 5 as stat1, 6 as stat2 union all
select '2022-12-02' as gameDate, 3 as stat1, 8 as stat2 union all
select '2022-12-02' as gameDate, 4 as stat1, 7 as stat2 union all
select '2022-12-02' as gameDate, 2 as stat1, 8 as stat2 union all
select '2022-12-02' as gameDate, 3 as stat1, 8 as stat2 union all
select '2022-12-03' as gameDate, 1 as stat1, 6 as stat2 union all
select '2022-12-03' as gameDate, 2 as stat1, 6 as stat2 union all
select '2022-12-03' as gameDate, 3 as stat1, 8 as stat2 union all
select '2022-12-03' as gameDate, 4 as stat1, 9 as stat2 union all
select '2022-12-03' as gameDate, 4 as stat1, 5 as stat2 union all
select '2022-12-04' as gameDate, 2 as stat1, 9 as stat2 union all
select '2022-12-04' as gameDate, 1 as stat1, 7 as stat2 union all
select '2022-12-04' as gameDate, 2 as stat1, 7 as stat2 union all
select '2022-12-04' as gameDate, 1 as stat1, 5 as stat2 union all
select '2022-12-04' as gameDate, 4 as stat1, 9 as stat2 union all
select '2022-12-05' as gameDate, 3 as stat1, 8 as stat2 union all
select '2022-12-05' as gameDate, 3 as stat1, 6 as stat2 union all
select '2022-12-05' as gameDate, 4 as stat1, 6 as stat2 union all
select '2022-12-06' as gameDate, 1 as stat1, 5 as stat2 union all
select '2022-12-06' as gameDate, 3 as stat1, 7 as stat2
),
data_stacked as (
select '2022-12-01' as rowDate, * from t1 where gameDate <= '2022-12-01' union all
select '2022-12-02' as rowDate, * from t1 where gameDate <= '2022-12-02' union all
select '2022-12-03' as rowDate, * from t1 where gameDate <= '2022-12-03' union all
select '2022-12-04' as rowDate, * from t1 where gameDate <= '2022-12-04' union all
select '2022-12-05' as rowDate, * from t1 where gameDate <= '2022-12-05' union all
select '2022-12-06' as rowDate, * from t1 where gameDate <= '2022-12-06'
)
select
rowDate,
count(*) as ct,
sum(stat1) as sumStat1,
sum(stat2) as sumStat2
from data_stacked
group by 1 order by 1 asc
我們希望按<= each date
進行分組,並在 groupby 內計算組內的 num 行和 stat1、stat2 的總和。 上面的示例在技術上是可行的,盡管它是通過硬編碼日期實現的,因此不可擴展,不是一個很好的長期解決方案。
這里是否有一個 bigquery 解決方案可以從t1
中找到不同的gameDate
並使用這些 gameDate 來執行此 groupby?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.