sql – 如何使用SUM()OVER()

前端之家收集整理的这篇文章主要介绍了sql – 如何使用SUM()OVER()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不明白这个代码错误
ID      AccountID       Quantity
1          1               10           Sum = 10
2          1               5                = 10 + 5 = 15
3          1               2                = 10 + 5 + 2 = 17
4          2               7                = 7
5          2               3                = 7 + 3 = 10  

SELECT ID,AccountID,Quantity,SUM(Quantity) OVER (PARTITION BY AccountID ) AS TopBorcT,FROM tCariH

解决方法

似乎像您期望该查询返回运行总计,但它必须给您两个分区的AccountID相同的值.

要使用SUM()OVER()获取运行总数,您需要在PARTITION BY …之后添加一个ORDER BY子子句,如下所示:

SUM(Quantity) OVER (PARTITION BY AccountID ORDER BY ID)

但请记住,并不是所有的数据库系统都支持ORDER BY在窗口聚合函数的OVER子句中. (例如,sql Server直到最新版本sql Server 2012才支持它).

猜你在找的MsSQL相关文章