在sql中使用windows函数运行总计对于相同的数据具有相同的结果

时间:2015-12-23 04:00:48

标签: postgresql window-functions running-total cumulative-sum

从我搜索的每个参考文献中,如何进行累积总和/运行总计。他们说使用Windows功能更好,所以我做了

select grandtotal,sum(grandtotal)over(order by agentname) from call

但我意识到只要每行的值不同,结果就可以了。结果如下:

result

有没有解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可能希望查看有关窗口规范的文档(here)。默认值为“range between”,它通过行中的值定义范围。你想要“行间”:

select grandtotal,
       sum(grandtotal) over (order by agentname rows between unbounded preceding and current row)
from call;

或者,您可以在排序中包含id列以保证唯一性,而不必处理相等键值的问题。