分析函数sum() over (order by ) 使用记录
来源:互联网 发布:nodejs 返回json对象 编辑:程序博客网 时间:2024/06/09 19:52
环境:oracle 10.2.0.1.0
用户:scott / tiger
分析函数sum() over (order by ) 使用记录:
SQL> select ename,sal,sum(sal) over(order by sal,empno) from emp order by 2;ENAME SAL SUM(SAL)OVER(ORDERBYSAL,EMPNO)---------- --------- ------------------------------SMITH 800.00 800JAMES 950.00 1750ADAMS 1100.00 2850WARD 1250.00 4100MARTIN 1250.00 5350MILLER 1300.00 6650TURNER 1500.00 8150ALLEN 1600.00 9750CLARK 2450.00 12200BLAKE 2850.00 15050JONES 2975.00 18025SCOTT 3000.00 21025FORD 3000.00 24025KING 5000.00 2902514 rows selected
第二种方法:
SQL> select ename,sal,(select sum(d.sal) from emp d where d.empno<=e.empno) from emp e order by 3;ENAME SAL (SELECTSUM(D.SAL)FROMEMPDWHERE---------- --------- ------------------------------SMITH 800.00 800ALLEN 1600.00 2400WARD 1250.00 3650JONES 2975.00 6625MARTIN 1250.00 7875BLAKE 2850.00 10725CLARK 2450.00 13175SCOTT 3000.00 16175KING 5000.00 21175TURNER 1500.00 22675ADAMS 1100.00 23775JAMES 950.00 24725FORD 3000.00 27725MILLER 1300.00 2902514 rows selected
其他: total2 列示意了存在重复值时可能带来的问题.
SQL> select ename,sal,sum(sal) over(order by sal,empno) as total1,sum(sal) over(order by sal)as total2 from emp order by 2;ENAME SAL TOTAL1 TOTAL2---------- --------- ---------- ----------SMITH 800.00 800 800JAMES 950.00 1750 1750ADAMS 1100.00 2850 2850WARD 1250.00 4100 5350MARTIN 1250.00 5350 5350MILLER 1300.00 6650 6650TURNER 1500.00 8150 8150ALLEN 1600.00 9750 9750CLARK 2450.00 12200 12200BLAKE 2850.00 15050 15050JONES 2975.00 18025 18025SCOTT 3000.00 21025 24025FORD 3000.00 24025 24025KING 5000.00 29025 2902514 rows selected
在over()内partition by 使用与不使用的区别显示:
SQL> select deptno,ename,sal,sum(sal) over(order by sal,empno) from emp ;DEPTNO ENAME SAL SUM(SAL)OVER(ORDERBYSAL,EMPNO)------ ---------- --------- ------------------------------ 20 SMITH 800.00 800 30 JAMES 950.00 1750 20 ADAMS 1100.00 2850 30 WARD 1250.00 4100 30 MARTIN 1250.00 5350 10 MILLER 1300.00 6650 30 TURNER 1500.00 8150 30 ALLEN 1600.00 9750 10 CLARK 2450.00 12200 30 BLAKE 2850.00 15050 20 JONES 2975.00 18025 20 SCOTT 3000.00 21025 20 FORD 3000.00 24025 10 KING 5000.00 2902514 rows selectedSQL> select deptno,ename,sal,sum(sal) over(partition by deptno order by sal,empno) from emp ;DEPTNO ENAME SAL SUM(SAL)OVER(PARTITIONBYDEPTNO------ ---------- --------- ------------------------------ 10 MILLER 1300.00 1300 10 CLARK 2450.00 3750 10 KING 5000.00 8750 20 SMITH 800.00 800 20 ADAMS 1100.00 1900 20 JONES 2975.00 4875 20 SCOTT 3000.00 7875 20 FORD 3000.00 10875 30 JAMES 950.00 950 30 WARD 1250.00 2200 30 MARTIN 1250.00 3450 30 TURNER 1500.00 4950 30 ALLEN 1600.00 6550 30 BLAKE 2850.00 940014 rows selected
- 分析函数sum() over (order by ) 使用记录
- oracle分析函数sum/ration_to_report(column) over (partition by column order by column)
- 分析函数入门sum...over(partition by xxx order by yyy rows between zzz)
- sum(x) over( partition by y ORDER BY z ) 分析
- sum(x) over( partition by y ORDER BY z ) 分析
- Oracle之sum / over / partition by / order by联合使用
- 【Orcale】分析函数 OVER(PARTITION BY... ORDER BY...)的讲解
- oracle分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总
- oracle分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总 .
- oracle分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总
- SUM() over()分析函数
- sum(col1) over(partition by col2 order by col3 )
- SUM OVER PARTITION BY ORDER BY(分组累计计算方法)
- oracle 分析函数:ROW_NUMBER() OVER(PARTITION BY ID ORDER BY VERSION DESC)
- SQL中分析函数ROW_NUMBER() OVER(PARTITION BY GRADEOBJECTID ORDER BY BG.GRADEDATE DESC)的用法!!!
- Server 2005 ROW_NUMBER() over(order by *) 使用
- sum()over()和count()over()分析函数
- sum over 分析函数用法
- HttpClient
- IE将上传的.doc,xlsx文件修改成 .zip文件 修改
- sip消息概念(一)
- SQL 存储过程自动发送邮件,提示:profile name is not valid
- shell 例
- 分析函数sum() over (order by ) 使用记录
- 观察者模式
- linux中sort排序和uniq
- myeclipse maven 创建 web项目
- 二叉树遍历
- 对于别人做好的数据库如何加快认识?
- "4+1" 视图
- 使用fdisk命令对linux硬盘进行操作
- CWnd和HWND的区别