sum(x) over( partition by y ORDER BY z ) 分析

sum(x) over (partition by y order by z)

求安照y分区,然后按z排序,连续加当前顺序号前面的数值 (求每个分区中,按照z的顺序累计求和)

a b

1 2
3 4
5 6
sum(b) over (order by a)

a b  sum

1 2  1
3 4  1+3
5 6 1+3+5

sum(b) over (order by a desc )

a b  sum

1 2  1+3+5
3 4  1+3
5 6  5
如果是sum(b)over(partition by a) 求的是按a分区,所有的和 
a b
1 3
1 4
2 3
3 1
3 4
结果是
a b  sum(b) (partition by a)
1 3 7
1 4 7
2 3 3
3 1 5
3 4 5

之前用过row_number(),rank()等排序与over( partition by ... ORDER BY ...),这两个比较好理解: 先分组,然后在组内排名。

今天突然碰到sum(...) over( partition by ... ORDER BY ... ),居然搞不清除怎么执行的,所以查了些资料,做了下实操。

1. 从最简单的开始

  sum(...) over( ),对所有行求和

  sum(...) over( order by ... ),和 =  第一行 到 与当前行同序号行的最后一行的所有值求和,文字不太好理解,请看下图的算法解析。

with aa as
(
SELECT 1 a,1 b, 3 c FROM dual union SELECT 2 a,2 b, 3 c FROM dual union SELECT 3 a,3 b, 3 c FROM dual union SELECT 4 a,4 b, 3 c FROM dual union SELECT 5 a,5 b, 3 c FROM dual union SELECT 6 a,5 b, 3 c FROM dual union SELECT 7 a,2 b, 3 c FROM dual union SELECT 8 a,2 b, 8 c FROM dual union SELECT 9 a,3 b, 3 c FROM dual ) SELECT a,b,c, sum(c) over(order by b) sum1,--有排序,求和当前行所在顺序号的C列所有值 sum(c) over() sum2--无排序,求和 C列所有值

sum() over()

2. 与 partition by 结合

  sum(...) over( partition by... ),同组内所行求和

  sum(...) over( partition by... order by ... ),同第1点中的排序求和原理,只是范围限制在组内

with aa as
(
SELECT 1 a,1 b, 3 c FROM dual union SELECT 2 a,2 b, 3 c FROM dual union SELECT 3 a,3 b, 3 c FROM dual union SELECT 4 a,4 b, 3 c FROM dual union SELECT 5 a,5 b, 3 c FROM dual union SELECT 6 a,5 b, 3 c FROM dual union SELECT 7 a,2 b, 3 c FROM dual union SELECT 7 a,2 b, 8 c FROM dual union SELECT 9 a,3 b, 3 c FROM dual ) SELECT a,b,c,sum(c) over( partition by b ) partition_sum, sum(c) over( partition by b order by a desc) partition_order_sum FROM aa;

view sql

  

转载于:https://www.cnblogs.com/wlzhang/p/5085321.html

sum() over (order by )相关推荐

  1. SQL 通过sum() over(order by ,rownum)实现财务现金日记账实例

    SELECT     类型,to_char(发生日期,'yyyy-MM-dd') 发生日期,期初余额,借方金额,贷方金额,     (CASE WHEN 借方金额>0 THEN '借'      ...

  2. sum(x) over( partition by y ORDER BY z ) 分析

    参考的博文出处:http://www.cnblogs.com/luhe/p/4155612.html,对博文进行了修改新增,修改了错误的地方 之前用过row_number(),rank()等排序与ov ...

  3. SQL SERVER:开窗函数 SUM() OVER() 数据统计中一例使用

    由于前一段时间胃痛,导致博客园博客都停更了一个月左右.近几天,胃病终于稍微有所好转,决定重新写博文. 前几天,有个朋友刚好问到本人有关 SQL 语句,大致是原表有两列,分别为月份.月份销售额,而需要一 ...

  4. Oracle-分析函数之sum(...) over(...)

    概述 Oracle函数 很久之前更新了一篇Oracle的函数博文 http://blog.csdn.net/yangshangwei/article/details/51425458,分析函数并没有包 ...

  5. oracle数据库中sum函数怎么用,SQL Sum()函数

    在本教程中,我们将演示如何使用SQL SUM函数,此函数计算所有值或不同值的总和. 1. SQL SUM函数简介 SQL SUM函数是一个聚合函数,它返回所有或不同值的总和.需要注意的是,只能将SUM ...

  6. NOI2015 题解

    D1T1 程序自己主动分析 题目大意:给定109个变量和n个等于/不等于的关系,推断是否能存在一组解满足全部关系 并查集傻逼题.NOIP小孩都会做 离散化一下,然后把相等的都用并查集并起来,推断每对不 ...

  7. c语言p gt name,c语言中strcmp(p-name,s)是什么意思?

    c语言中strcmp(p->name,s)是什么意思?0 cg4tf2q52016.06.28浏览142次分享举报 网上看的c语言做学生管理表中的一个查找函数,其中有一段判断输入的名字与管理表中 ...

  8. 面试题01(C++)

    收集一些面试相关的题目,大部分来自网络. (答案还有待进一步确认) 1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐 ...

  9. 数据库-分组语句及用法

    MySQL GROUP BY 语句 GROUP BY 语句根据一个或多个列对结果集进行分组. 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数. 语法结构: SELECT column ...

最新文章

  1. reportNG定制化之失败截图及日志
  2. 实验七:层叠样式表(二)
  3. jquery 幻灯片图像切换效果
  4. 从0到1开发实战手机站(二):Git提交规范配置
  5. 转:在 C# 中使用 P/Invoke 调用 Mupdf 函数库显示 PDF 文档
  6. transformer bert 入门
  7. JSP、Servlet、Tomcat、JDK、J2EE版本比较
  8. 原创 | 为什么阿里巴巴要求谨慎使用ArrayList中的subList方法
  9. 致谢!华为全联接2020精彩回顾
  10. 【宝藏系列】推荐几款免费的视频转文字字幕的软件
  11. Netty权威指南(三)Netty入门应用
  12. xp计算机字体在哪,Windows XP系统字体库在哪-如何安装新字体
  13. (图像加密)常用图像置乱算法matlab实现(二)
  14. E-mark认证是什么?
  15. 光环五正在连接服务器,五亿美元打水漂了?追了这么久的光环系列,玩家根本没法看...
  16. error C2144: syntax error: 'int' should be preceded by ';'
  17. Jetson TX2 apt换源
  18. 高德地图实现仿qq,微信发送位置功能实现逻辑
  19. 用PDF格式协议的方式给PDF文档添加透明文字水印
  20. java和工程造价_(   )不是Java的开发工具。

热门文章

  1. AcWing 891. Nim游戏(nim博弈)
  2. java 标识变量_Java变量与数据类型之一:Java编程规范,关键字与标识符
  3. Python使用sftp实现上传和下载功能(实例代码)
  4. 装文件存储服务器Fastdfs
  5. 香港城门隧道翻车意外酿一死16伤
  6. 通过web的方式动态查看tomcat的catalina.out的日志(web.py)
  7. 【世间万象】五甲万科董事长孙凯歌:五甲有红旗情节
  8. Red Hat EnterPrise Linux 5.4下web服务器的综合使用(普通站点、虚拟主机、安全性、...
  9. 人工智能平台 H2O.ai
  10. 18大产业的产业链全景图!(高清大图)