如何在Redshift中创建缺少日期的滚动和



我有一个列为datecol_acol_bvalue的表。

我正试图在value上做一个滚动求和,窗口为7。问题是,我们不能保证对于所有可能的列组合,我们将有一个连续的日期序列。所以,当计算最后7天的总和时,对于列的组合,可能只有3天(日期(。解决方案是,我们可以假设value列的缺失日期为0。

我尝试过一个查询,它为一个日期创建了一个滚动汇总表-

select col_a, col_b, sum(value), '2019-12-19' as foo
from schema_a.table_b
where to_date(event_date, 'yyyy-mm-dd')  < to_date('2019-12-26', 'yyyy-mm-dd') and to_date(event_date, 'yyyy-mm-dd')  > to_date('2019-12-19', 'yyyy-mm-dd')
group by col_a, col_b

我现在必须为从最小到最大的所有唯一日期做

我应该进行循环,还是有更好的方法来处理这种情况,因为这似乎是一个相当常见的用例。

在熊猫身上,我们可以很容易地进行插补和rolling_sum。

使用GENERATE_DATES,然后左键将实际数据连接到此表。用0填充任何NULLS,并计算滚动和。

最新更新