【发布时间】:2023-03-23 20:26:01
【问题描述】:
我的问题是关于 bigquery 中的滑动窗口总结。
我有一张如下表
run_id year_week value
001 201451 5
001 201452 8
001 201501 1
001 201505 5
003 201352 8
003 201401 1
003 201405 5
在这里,每一年的一周可以从 01 到 53。例如,2014 年有上周,即 201452,但 2015 年有上周,即 201553。如果它让生活更轻松,我只有 5 年,2013 年,2014 年、2015 年、2016 年和 2017 年,只有 2015 年的周数达到 53 周。
现在,对于每次运行,我都尝试获取值的滑动窗口总和。每个year_week 将假定当前run_id(例如001)的下一个5 year_week(包括它自己)的值的总和。例如以下可能是当前表的输出
run_id year_week aggregate_sum
001 201451 5+8+1+0+0
001 201452 8+1+0+0+0
001 201501 1+0+0+0+5
001 201502 0+0+0+5+0
001 201503 0+0+5+0+0
001 201504 0+5+0+0+0
001 201505 5+0+0+0+0
003 201352 8+1+0+0+0
003 201401 1+0+0+0+5
003 201402 0+0+0+5+0
003 201403 0+0+5+0+0
003 201404 0+5+0+0+0
003 201405 5+0+0+0+0
为了解释正在发生的事情,201451 (包括它自己)接下来的 5 周将是 201451,201452,201501,201502,201503 。如果当前run_id 的表中有这些周的值,我们只需将它们相加,即 5+8+1+0+0,因为如果不是,year_week 的对应值为 0在表中。
是否可以在 bigquery 中使用滑动窗口操作来做到这一点?
【问题讨论】:
标签: google-bigquery bigquery-standard-sql legacy-sql