2016 - 2024

感恩一路有你

sqlserver基本介绍 sql server有没有sum over?

浏览量:2399 时间:2021-03-17 08:23:04 作者:admin

sql server有没有sum over?

有的

原表有两列,分别为月份、月份销售额,而需要一条 SQL 语句实现统计出每个月份以及当前月以前月份销售额和。

SQL 测试表脚本

DECLARE @Temp Table( ID INT, --- 月份 MoneyData Float --- 金额) insert INTO @TEMPSELECT 1,100 UNION ALLSELECT 2,200 UNION ALLSELECT 3,300 UNION ALLSELECT 4,400 UNION ALLSELECT 5,500 UNION ALLSELECT 6,600 UNION ALLSELECT 7,600

一 自连接

SELECT A.ID, SUM(B.MoneyData) FROM @Temp A INNER JOIN @Temp BON A.ID>=B.ID GROUP BY A.ID

------ 重点在于 ON 条件,通过自连接 A.ID >= B.ID ,可获取所需数据,再通过

GROUP BY 、SUM 即可统计求和

二 开窗函数

SELECT ID, MoneyData, SUM(MoneyData) OVER( ) AS "总销售额",SUM(MoneyData) OVER( PARTITION BY ID ) AS "月销售额", SUM(MoneyData) OVER( ORDER BY ID ASC) AS "当月 当月前销售额" FROM @Temp

---- 此处,使用开窗函数使用更为简单,不过,其中 SUM() OVER ( ORDER BY ID ASC ) 即可实现以上功能

关于,开窗函数的具体用法,可参考微软 MSDN 官方 API 文档,最后,推荐一本开窗函数书:基于 SQL SERVER 2012 窗口函数。

sqlserver基本介绍 sql语句中的sum求和用法 sql server是干嘛的

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。