加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:44:23 所属栏目:MsSql教程 来源:网络整理
导读:我不明白这个代码的错误 ID AccountID Quantity1 1 10 Sum = 102 1 5 = 10 + 5 = 153 1 2 = 10 + 5 + 2 = 174 2 7 = 75 2 3 = 7 + 3 = 10 SELECT ID,AccountID,Quantity,SUM(Quantity) OVER (PARTITION BY AccountID ) AS TopBorcT,FROM tCariH 解决方法 似乎
我不明白这个代码的错误
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才支持它).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读