【发布时间】:2011-06-20 22:31:31
【问题描述】:
我需要在 over 子句中使用 where 子句。怎么样?
SELECT SUM(amount) OVER(WHERE dateval > 12)
或者类似的东西。
--编辑--
更多细节
我的表格格式为年、月和金额列。
我想选择所有年、月和金额行并创建第四个“虚拟列”,其中包含金额列过去 12 个月的总和。
例如:
年份 |月 |数量
2001 | 03 | 10
2001 | 05 | 25
2001 | 07 | 10
应该创建:
年份 |月 |数量 |连续 12 个月
2001 | 03 | 10 | 10
2001 | 05 | 25 | 35
2001 | 07 | 10 | 45
【问题讨论】:
-
您能否更准确地说明您需要什么?
-
当然。例如,我想获得某个列的值小于 12 的行的总和。我不能使用通常的 WHERE 子句,因为我在同一个查询中收集了一些其他的东西。所以我需要类似 WHERE 子句的东西,但在 OVER 子句中。
-
好的-感谢您提供的附加信息-这看起来更像是适合窗口功能。您使用的是哪个版本的 PostgreSQL?
-
我已经编辑了我的原始答案,以窗口方式处理请求。
标签: postgresql