【发布时间】:2018-09-23 05:35:06
【问题描述】:
我有一个简单的查询来计算当前行和前 11 行的值的总和。当行数大于 12 时它可以正常工作,但是当它小于 12 时,数据会被复制以填充缺失值。
总表:
ID|Report_Month| Total
1 |2018-08-01 |5
2 |2018-09-01 |25
3 |2018-10-01 |15
示例代码:
select distinct
ID,
Report_Month,
Total,
sum(Total) over (partition by ID order by report_month rows between 11 preceding and current row) as Running_Total
from TOTALS_TABLE;
预期输出:
ID|Report_Month|Total|Running_Total
1 | 2018-08-01 | 5 | 5
2 | 2018-09-01 | 25 | 30
3 | 2018-10-01 | 15 | 45
实际输出:
1 | 2018-08-01 | 5 | 5
1 | 2018-08-01 | 5 | 10
1 | 2018-08-01 | 5 | 15
1 | 2018-08-01 | 5 | 20
2 | 2018-09-01 | 25 | 45
2 | 2018-09-01 | 25 | 70
2 | 2018-09-01 | 25 | 95
2 | 2018-09-01 | 25 | 120
3 | 2018-10-01 | 15 | 135
3 | 2018-10-01 | 15 | 150
3 | 2018-10-01 | 15 | 165
3 | 2018-10-01 | 15 | 180
任何帮助将不胜感激,我觉得我很接近可能错过了一些东西。
【问题讨论】:
-
为什么里面有 DISTINCT?
-
请编辑您的帖子,选择任何将受益于等宽字体预格式化样式的内容,然后按代码。哈顿上方的文本框。它将在每行的开头添加 4 个空格,这就是我们如何使代码块正确显示在 SO..
-
mysql、postgresql、tsql都是互斥的,你用的是哪个DBMS?
-
我认为 Postgres 考虑到他是在这个主题中写的,其他标签可能只是为了引起相关专业人士的注意(请避免这样做),他们可以回答。 Sql 标签是一个更好的保护伞
标签: sql postgresql window-functions