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

running total using windows function in sql has same result for same data

从我搜索的每个参考文献中如何计算累计总和/运行 总计。他们说用 windows 函数更好,所以我用了

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

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

有办法解决这个问题吗?

您可能需要查看有关 window 规范(即 here)的文档。默认值为 "range between",它通过行中的值定义范围。你想要 "rows between":

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

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