由于前一段时间胃痛,导致博客园博客都停更了一个月左右。近几天,胃病终于稍微有所好转,决定重新写博文。

前几天,有个朋友刚好问到本人有关 SQL 语句,大致是原表有两列,分别为月份、月份销售额,而需要一条 SQL 语句实现统计出每个月份以及当前月以前月份销售额和。尼玛,感觉还是没有说清,下面用图表示。

   

 SQL 测试表脚本  

    

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

 一 自连接

SELECT  A.ID, SUM(B.MoneyData)  FROM @Temp A INNER JOIN @Temp B
ON 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 窗口函数。

参考:https://msdn.microsoft.com/zh-cn/library/ms173454.aspx

转载于:https://www.cnblogs.com/Lumia1020/p/5439982.html

SQL SERVER:开窗函数 SUM() OVER() 数据统计中一例使用相关推荐

  1. 73、Spark SQL之开窗函数以及top3销售额统计案例实战

    开窗函数以及top3销售额统计案例实战 Spark 1.4.x版本以后,为Spark SQL和DataFrame引入了开窗函数,比如最经典,最常用的,row_number(),可以让我们实现分组取to ...

  2. 【转】SQL SERVER 开窗函数简介

    在SQL SERVER 2005/2008支持两种排名开窗函数和聚集开窗函数. 以SQL SERVER中分面页为例,按时间顺序列出定单号. WITH OrderInfo AS ( SELECT ROW ...

  3. Sql Server 开窗函数Over()的使用

    利用over(),将统计信息计算出来,然后直接筛选结果集 1 declare @t table( 2 ProductID int, 3 ProductName varchar(20), 4 Produ ...

  4. SQL SERVER 系列(7)数据表排序和聚集函数

    SQL SERVER 系列(6)数据表排序和聚集函数 数据表排序: 当我们在对数据库操作的时候,我们经常会遇到对年龄,对考试成绩进行排序的问题,排序可以使我们对所要显示的数据一目了然,因此排序就成为了 ...

  5. SQL Server时间函数

    一.统计语句 1.–统计当前[>当天00点以后的数据] SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(N ...

  6. mysql标量函数,SQL Server标量函数

    在本教程中,将了解SQL Server标量函数以及如何使用它们来封装公式或业务逻辑,并在查询中重用它们. 标量函数是什么 SQL Server标量函数接受一个或多个参数并返回单个值. 标量函数可帮助简 ...

  7. SQL Server用户自定义函数

    用户自定义函数不能用于执行一系列改变数据库状态的操作,但它可以像系统 函 数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过 EXECUTE 命令来执行.在 SQL Server 中根据 ...

  8. SQL Server CONVERT() 函数,Date 函数

    From: http://www.w3school.com.cn/sql/func_convert.asp 定义和用法 CONVERT() 函数是把日期转换为新数据类型的通用函数. CONVERT() ...

  9. sql server 自定义函数的使用

    sql server 自定义函数的使用 自定义函数 用户定义自定义函数像内置函数一样返回标量值,也可以将结果集用表格变量返回 用户自定义函数的类型: 标量函数:返回一个标量值 表格值函数{内联表格值函 ...

最新文章

  1. linux 动态库建立,浅析linux下静态库和动态库的建立和使用
  2. 面向.NET开发人员的Dapr——发布和订阅
  3. java自己实现ioc_springioc原理、springmvc项目分析、自己实现IOC
  4. Qt使用invokeMethod反射机制实现进程间的通信
  5. hdu1466(dp)
  6. spring MVC配置form支持PUT和DELETE方法
  7. 股票点买3.0交易系统接口设计思路
  8. 无线路由器网络测试软件,简单快速测试家里无线路由器的网速和性能
  9. 【踩坑记录】.bss段;.bss段到底占不占目标文件的空间,有没有记录对应信息。
  10. python 录屏_《自拍教程70》Python adb一键录屏
  11. 关于应用~试玩,你想知道的都在这儿了----超详细总结(上篇)
  12. 高温熔融玻璃液位检测用激光玻璃液位计
  13. 亚马逊国际站通过ASIN获取商品信息
  14. mysql安装后目录介绍,MySQL安装后的目录结构及配置文件详解
  15. 通信核心网linux,基于linux的双模智能手机实现方案
  16. Conmi的正确答案——树莓派更新缓慢解决方案
  17. 实现素描效果---OpenCV-Python开发指南(49)
  18. 浪潮服务器linux下升级固件,补丁包下载
  19. MediaRecorder关于录制视频文件大小和录制时长的设置
  20. js之深浅克隆(深浅拷贝)

热门文章

  1. 使用Qt设计师文件的3种方式
  2. 南京大学python_python split()函数
  3. linux常用指令_Linux常用指令
  4. 全国计算机棋类竞赛,自主招生认可的12类主流竞赛详解
  5. 月均数据_数据|| 焊接不锈钢管、卷板、棒相继被调查,出口印度的量逐年降!...
  6. java 关于集合的笔试题_Java集合面试题(一)
  7. php限制接口访问次数_php暂停多长时间后继续执行代码
  8. 计算机科学文章,计算机科学导论论文范文
  9. 在B站更新BV标识后,如何查看视频原AV号?
  10. 001机器学习深度学习简介