以下是否可以在 overclause 中使用 where 子句?
SELECT SUM(amount) OVER(partition by prod_name WHERE dateval > dateval_13week)
由于我的日期不按顺序排列,所以我无法在over子句中使用preceding和following。我只需要提取少于当前记录的13周日期值的记录。
EDIT :
sum(CASE WHEN dateval >= dateval_13week and dateval <=current_row_dateval then amount else 0 end) over (partition by prod_name order by week_end desc)
更详细地说,早先当我的日期都是按顺序排列的时候,我使用以下查询来分区记录。现在我的日期是随机排列的,且有一些日期缺失。
sum(amount) over
(partition by prod_name order by prod_name,week_end desc rows between 0 preceding and 12 following)