【发布时间】:2014-01-17 22:28:18
【问题描述】:
我有一个具有两级细分的数据集;尝试使用窗口函数(累积和)在顶层进行汇总,但窗口函数不会将输出分组到单行中。
数据如下:
日期 |顶级a | a1 |要总结的字段
日期 |顶级a | a2 |要总结的字段
日期 |顶层b | b1 |要总结的字段
日期 |顶层b | b2 |要总结的字段
日期 |顶层b | b3 |字段总结
我在做:
SUM(field_to_summarize) OVER (partition by top_level order by date) AS CumulativeSum
如上所示,这将在每一行的每个顶层返回相同的 CumulativeSum。 如何按窗口进行聚合,但每个顶层只返回一行?像这样:
日期 |顶级a | a的累计金额
日期 |顶层b | b的累计和
【问题讨论】:
-
不只是简单的
select top_level, sum(field_to_summarize) form my_table group by top_level order by top_level吗?请注意,最后一行的累积总和将等于所有值的总和,直到并包括按组中的最后一行 -
如果我只想要一次性运行总计,这很有效。但我也需要按日期分组,以获得每月的运行总数。还有其他想法吗?
-
只需按顶层添加组
标签: sql postgresql aggregate-functions window-functions