【发布时间】:2017-11-19 21:01:56
【问题描述】:
我正在尝试计算相对日期范围内的最大值。假设我有这些列:日期、周、类别、值。注意:Week 列是相应日期的一周中的星期一。
我想生成一个表格,给出过去两周内每个日期、周、类别组合的 MAX 值,以便输出生成以下内容:日期、周、类别、值、2WeeksPriorMAX。
我将如何编写该查询?我认为以下方法行不通:
SELECT Date, Week, Value,
MAX(Value) OVER (PARTITION BY Category
ORDER BY Week
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as 2WeeksPriorMAX
上述查询未考虑过去 2 周内给定 Category、Week 组合缺少值的情况,因此在分析前 2 行时,它会跨越 2 周以上。
【问题讨论】:
-
LEFT JOINing it with a dates table 你会解决你的问题。
-
用您正在使用的数据库标记您的问题。
-
您的问题类似于在 dba.se 上提出的Date range rolling sum using window functions
标签: sql amazon-redshift window-functions