oracle sum(col1) over(partition by col2 order by col3):实现分组递增汇总
应公司业务要求,需要对数据进行分组汇总做辅助列进行查询
所以使用到了sum(col1) over(partition by col2 order by col3)函数,为了学习与提高在此进行记录。
1、准备数据源
CREATE TABLE TEST01 (
NAME VARCHAR(20),
DEP_NO VARCHAR(10),
SALARY NUMBER(20,2)
);
2、插入数据
INSERT INTO TEST01(NAME,DEP_NO,SALARY) VALUES('张三','0010',12000);
INSERT INTO TEST01(NAME,DEP_NO,SALARY) VALUES('李四','0010',12500);
INSERT INTO TEST01(NAME,DEP_NO,SALARY) VALUES('王五','0020',13000);
INSERT INTO TEST01(NAME,DEP_NO,SALARY) VALUES('赵六','0020',11000);
INSERT INTO TEST01(NAME,DEP_NO,SALARY) VALUES('田七','0020',10000);
INSERT INTO TEST01(NAME,DEP_NO,SALARY) VALUES('如花','0030',8000);
INSERT INTO TEST01(NAME,DEP_NO,SALARY) VALUES('阿卡','0030',9000);
INSERT INTO TEST01(NAME,DEP_NO,SALARY) VALUES('似玉','0030',9500);
INSERT INTO TEST01(NAME,DEP_NO,SALARY) VALUES('撒人','0030',8800);
INSERT INTO TEST01(NAME,DEP_NO,SALARY) VALUES('三忍','0030',6000);
INSERT INTO TEST01(NAME,DEP_NO,SALARY) VALUES('三舞','0030',6600);
3、进行查询
SELECT T.NAME
,T.SALARY
,T.DEP_NO
,SUM(T.SALARY) OVER(PARTITION BY T.DEP_NO ORDER BY T.NAME)
FROM TEST01 T;
查询结果如下图:
这里对DEP_NO进行分组,根据NAME进行排序,然后统计每组递增汇总结果!
oracle sum(col1) over(partition by col2 order by col3):实现分组递增汇总的更多相关文章
- oracle分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总
语法:sum(col1) over(partition by col2 order by col3 ) 准备数据: DEPT_ID ENAME SAL1 1000 ...
- oracle sum(x) over( partition by y ORDER BY z ) 分析
之前用过row_number(),rank()等排序与over( partition by ... ORDER BY ...),这两个比较好理解: 先分组,然后在组内排名. 今天突然碰到sum(... ...
- oracle常用分析函数 over(partition by xxx order by xxx)
--over order by 连续累加的意思,把by后面相同的字段,一个组组累加起来SELECT id_,name_,proc_def_id_, count(*) over(order by nam ...
- Row_number() OVER(PARTITION BY xxx ORDER BY XXX)分组排序
--//创建一个信息表 ,) ,),st_name ),class ),score ,)) --//插入测试数据============start=================== insert ...
- oracle下的OVER(PARTITION BY)函数介绍
转自:http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数介绍 开窗函数 ...
- oracle 高级用法, DECODE 排序, OVER(PARTITION BY X ORDER BY Y DESC) 开窗函数
场景 01 (IN 语句 排序 decode() 函数): 1,我们在查询中会经常使用这样的用法, select * from table_name t where t.id in (1, 3, 7, ...
- 超级牛皮的oracle的分析函数over(Partition by...) 及开窗函数 (转)
http://zonghl8006.blog.163.com/blog/static/4528311520083995931317/ over(Partition by...) 一个超级牛皮的ORAC ...
- 超级牛皮的oracle的分析函数over(Partition by...) 及开窗函数
over(Partition by...) 一个超级牛皮的ORACLE特有函数. 天天都用ORACLE,用了快2年了.最近才接触到这个功能强大而灵活的函数.真实惭愧啊! oracle的分析函数over ...
- [转]Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数
oracle的分析函数over 及开窗函数 一:分析函数Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是 对于每个组返回多行,而聚合函数对于每个组 ...
随机推荐
- 在 django模型中封装元组和字典, 字段中使用chioce参数实现数据的一一对应
一.models.py中 class OrderInfo(BaseModel): '''订单模型类''' # 封装一个字典, 便于在视图中取值, 进行比对 PAY_METHODS = { : &quo ...
- k_means算法C++实现,改为面向对象
画的类图如下:
- 《快学Scala》第一章 基础
- shell实战之case语句的选择提示
知识点包括:case语句,cat多行输入,break和exit的区别,wget断点续传,while中断条件写法,函数的使用方法 #!/bin/bash echo "\n1. 本机容器情况如下 ...
- 工程手机设置apn
http://android.stackexchange.com/questions/117125/how-do-i-add-an-apn-via-adb xiaomi3 su mount permi ...
- 在微信移动端input file拍照或从相册选择照片后会自动刷新页面退回到一开始网站进入的页面
<input type="file" accept="image/*"/> 调用打开摄像头后,聚焦后拍照,点击确认,这时页面会出现刷新动作,然后回退 ...
- Q221 最大正方形
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积. 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 cla ...
- window下eclipse安装python插件
1.安装python环境 python安装包下载地址:https://www.python.org/downloads/windows/ 2.在eclipse中在线安装PyDev插件 启动Eclips ...
- 趣说Java:我是一个线程
第一回 初生牛犊 我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴. 我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说 ...
- 用maven来创建scala和java项目代码环境(图文详解)(Intellij IDEA(Ultimate版本)、Intellij IDEA(Community版本)和Scala IDEA for Eclipse皆适用)(博主推荐)
不多说,直接上干货! 为什么要写这篇博客? 首先,对于spark项目,强烈建议搭建,用Intellij IDEA(Ultimate版本),如果你还有另所爱好尝试Scala IDEA for Eclip ...