【发布时间】:2020-12-28 12:04:37
【问题描述】:
我正在尝试使用窗口函数创建移动平均线。我希望它总结前 7 天的计数。我有一列表示日期,一列表示小时,每个日期 - 小时行都有一个计数。
例如,对于 8/18,我想将之前所有行的计数相加(8/11 到 8/17)。考虑到每个日期都按小时展开,这有点棘手。那么所有 8/18 行将具有与前 7 天相同的总和值。
我尝试在 redshift 中使用组或范围定义框架,但它似乎只喜欢行。
到目前为止,我所拥有的只是对具有相同日期的组的计数求和。我该如何调整或有其他方法?
sum(count) over (partition by date)
date hour count last7day
2020-08-11 0 1
2020-08-11 1 5
2020-08-11 2 8
.
.
.
2020-08-11 23 4
.
.
.
2020-08-17 23 7
2020-08-18 0. sum of all rows from 2020-08-11 hour 0 through 2020-08-17 hour 23
2020-08-18 1
2020-08-18 2
【问题讨论】:
-
注意
datehour和count都是Postgres SQL中的关键字。避免将它们用作标识符。
标签: sql postgresql amazon-redshift window-functions