ORACLE逐行累计求和方法(OVER函数)

摘要:
解决实际问题:1)问题描述:比如查询记录有5行,每行记录有一个数值型的字段。第2行为第1、2行的和;第3行为第1、2、3行的和;第4行为第1、2、3、4行的和;后面依此类推……2)解决办法:使用Oracle自带的Over函数。

sql over的作用及用法
1.RANK ( ) OVER ( [query_partition_clause] order_by_clause )
DENSE_RANK ( ) OVER ( [query_partition_clause] order_by_clause )
可实现按指定的字段分组排序,对于相同分组字段的结果集进行排序,
其中PARTITION BY 为分组字段,ORDER BY 指定排序字段

2.over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用。
其参数:over(partition by columnname1 order by columnname2)
含义:按columname1指定的字段进行分组排序,或者说按字段columnname1的值进行分组排序。

解决实际问题:(实现统计功能中常用)
1)问题描述:比如查询记录有5行,每行记录有一个数值型的字段。第2行为第1、2行的和;第3行为第1、2、3行的和;第4行为第1、2、3、4行的和;后面依此类推……
2)解决办法:使用Oracle自带的Over函数。
如下例子:
1.建测试表EMP
– Create table
create table employee
(
DEPTNO NUMBER(4),
ENAME VARCHAR2(20),
SAL NUMBER(10)
);
2.插入测试数据
insert into employee (DEPTNO,ENAME,SAL) values (0001,’CLARK’,2450);
insert into employee (DEPTNO,ENAME,SAL) values (0002,’SMITH’,3000);
insert into employee (DEPTNO,ENAME,SAL) values (0003,’ALLEN’,1250);
insert into employee (DEPTNO,ENAME,SAL) values (0004,’JAMES’,950);
查询结果如下:
这里写图片描述

3.编写SQL(用Over函数)
select deptno,
sal,
sum(sal) over (order by deptno) AccSal
from employee

查询结果如下:
这里写图片描述

未完待续…

免责声明:文章转载自《ORACLE逐行累计求和方法(OVER函数)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python打开文件报错SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated UXXXXXXXX escapevue pc端支付宝支付下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle重置序列(不删除重建方式)

Oracle 中的序列我们一般用来生成流水号,所以需要进行重置(如每天凌晨重置一次),我们虽然可以通过重新编译的方式重置序列,可是这种方法会有弊端,比如导致与该序列相关的存储过程或函数失效等等,需要重新编译;于是就需要一种不编译也可以重置序列的方法—— 这种方式,不用删除,利用步长参数,先查出sequence的nextval,记住,把递增改为负的这个值(反...

Oracle-批量修改语句及相关知识点

问: 有两张表A和B,结构相同,数据量一致,比如都有x,y和z列且都有n行,x为主键,完全相等,如何把表B的y列的数据赋值给A的y列?   我写的是1 update A set A.y=B.y where A.x=B.x报错原因是表B未定义。  答: update A set A.y=(select yfrom B where B.x = A.x)wher...

Oracle面试题(基础篇)

1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windows平台的稳定性和安全性影响了sql server的稳定性和安全性 2). oracle使用的脚本语言为PL-SQL,而sql server使用的脚本为T-...

sql优化(oracle)

系统优化中很重要的方面是SQL语句的优化,对于海量数据,优质的SQL能够有效的提高系统的可用性。 总结的有点罗嗦,列个简单的目录啦~ 目录 第一部分 知识准备                            第二部分 常用sql用法和注意事项                                第三部分  sql优化总结     1.  s...

这样做,免费从Oracle同步数据

点击▲关注 “数据和云” 给公众号标星置顶 更多精彩 第一时间直达 刘伟 刘伟,云和恩墨软件开发部研究院研究员;前微博DBA,主要研究方向为开源数据库,分布式数据库,擅长自动化运维以及数据库内核研究。 不得不承认的一点是,当前数据库的使用趋势,至少在国内,是逐渐从Oracle转向MySQL(扩大化概念的话,就是包括PG等在内的开源数据库,以及rds类的云...

ORACLE如何实现函数、包、存储过程的导入和导出

建 议可以用常规的检查,检查一下:数据字典信息/exp 导出结构检查 1.检查 SELECT * FROM ALL_SOURCE t WHERE T.OWNER = '要查询用户' AND t.TYPE = 'PACKAGE BODY' select * from USER_SOURCE where type = 'PACKAGE' 2.exp 结构。检查...