sum(x) over( partition by y ORDER BY z ) 分析
时间:2022-04-25
本文章向大家介绍sum(x) over( partition by y ORDER BY z ) 分析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. 从最简单的开始
sum(...) over( ),对所有行求和
sum(...) over( order by ... ),和 = 第一行 到 与当前行同序号行的最后一行的所有值求和,文字不太好理解,请看下图的算法解析。
with aa as(
SELECT 1 a,1 b, 3 c FROM dual unionSELECT 2 a,2 b, 3 c FROM dual unionSELECT 3 a,3 b, 3 c FROM dual unionSELECT 4 a,4 b, 3 c FROM dual unionSELECT 5 a,5 b, 3 c FROM dual unionSELECT 6 a,5 b, 3 c FROM dual unionSELECT 7 a,2 b, 3 c FROM dual unionSELECT 8 a,2 b, 8 c FROM dual unionSELECT 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列所有值
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 unionSELECT 2 a,2 b, 3 c FROM dual unionSELECT 3 a,3 b, 3 c FROM dual unionSELECT 4 a,4 b, 3 c FROM dual unionSELECT 5 a,5 b, 3 c FROM dual unionSELECT 6 a,5 b, 3 c FROM dual unionSELECT 7 a,2 b, 3 c FROM dual unionSELECT 7 a,2 b, 8 c FROM dual unionSELECT 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;
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- centos7 hbase1.4.13+hadoop2.7.1+单机环境搭建
- 关于kubeconfig多集群切换
- 代码版本管理规范
- 基于云原生系统的应用分发系统设计
- vue实现文字表情同时输入的方法
- 不同类型的ABAP内表读写性能比较
- JavaScript和ABAP的MD5计算源代码
- 读取SAP CRM One Order应用日志的优化方式
- 悟空活动中台 - 基于 WebP 的图片高性能加载方案
- DES ECB加解密的Java实现
- win10 uwp 不显示 SplashScreen 欢迎界面的方法
- WPF 在 XAML 写 C# 代码
- 解析 HashMap源码值概括
- 解析 HashMap 源码之基本操作
- Docker手册