应公司业务要求,需要对数据进行分组汇总做辅助列进行查询

所以使用到了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):实现分组递增汇总的更多相关文章

  1. oracle分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总

    语法:sum(col1) over(partition by col2 order by col3 )  准备数据: DEPT_ID    ENAME          SAL1 1000       ...

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

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

  3. oracle常用分析函数 over(partition by xxx order by xxx)

    --over order by 连续累加的意思,把by后面相同的字段,一个组组累加起来SELECT id_,name_,proc_def_id_, count(*) over(order by nam ...

  4. Row_number() OVER(PARTITION BY xxx ORDER BY XXX)分组排序

    --//创建一个信息表 ,) ,),st_name ),class ),score ,)) --//插入测试数据============start=================== insert ...

  5. oracle下的OVER(PARTITION BY)函数介绍

    转自:http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数介绍 开窗函数          ...

  6. 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, ...

  7. 超级牛皮的oracle的分析函数over(Partition by...) 及开窗函数 (转)

    http://zonghl8006.blog.163.com/blog/static/4528311520083995931317/ over(Partition by...) 一个超级牛皮的ORAC ...

  8. 超级牛皮的oracle的分析函数over(Partition by...) 及开窗函数

    over(Partition by...) 一个超级牛皮的ORACLE特有函数. 天天都用ORACLE,用了快2年了.最近才接触到这个功能强大而灵活的函数.真实惭愧啊! oracle的分析函数over ...

  9. [转]Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数

    oracle的分析函数over 及开窗函数 一:分析函数Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是 对于每个组返回多行,而聚合函数对于每个组 ...

随机推荐

  1. Ajax请求参数解释

    ajax常用的两个请求是get和post,而springmvc的控制层可以接收ajax请求. 但是这个过程非常灵活,变化很大,容易出错. $.ajax({ url : SITE_PATH + &quo ...

  2. robot framework学习笔记之十-模板

    测试模板可以让关键字驱动测试用例转换为数据驱动测试用例.鉴于普通测试用例是由关键字和可能的参 数组成,使用了模板的测试用例只需要定义模板关键字的参数即可

  3. Service由浅到深——AIDL的使用方式

    前言 最近有很多朋友问我这个AIDL怎么用,也许由于是工作性质的原因,很多人都没有使用过aidl,所以和他们讲解完以后,感觉对方也是半懂不懂的,所以今天我就从浅到深的分析一下这个aidl具体是怎么用的 ...

  4. Tensorflow入门----占位符、常量和Session

    安装好TensorFlow之后,开一个python环境,就可以开始运行和使用TensorFlow了. 先给一个实例, #先导入TensorFlow import tensorflow as tf he ...

  5. canvas+js绘制折线图

    效果: 源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  6. CF1012C Hills 题解【DP】

    思路还是比较简单的 dp 吧,但是就是想不出来-甚至类似的方程都被自己推翻了 Description Welcome to Innopolis city. Throughout the whole y ...

  7. dp--最大区间和变形-cf-1155D

    dp--最大区间和变形-cf-1155D D. Beautiful Array time limit per test 2 seconds memory limit per test 256 mega ...

  8. maven工程下testng简单使用

    创建maven工程后,将Repository仓库中maven代码粘贴复制到pom.xml文件中,仓库地址:<!-- https://mvnrepository.com/artifact/org. ...

  9. header请求头信息详细介绍

    https://www.byvoid.com/zhs/blog/http-keep-alive-header HTTP协议头部与Keep-Alive模式详解 1.什么是Keep-Alive模式? 我们 ...

  10. emacs26.1 ppa

    sudo add-apt-repository ppa:kelleyk/emacssudo apt updatesudo apt install emacs26