ORACLE中OVER函数的用法Word下载.docx
- 文档编号:14131124
- 上传时间:2022-10-19
- 格式:DOCX
- 页数:13
- 大小:70.77KB
ORACLE中OVER函数的用法Word下载.docx
《ORACLE中OVER函数的用法Word下载.docx》由会员分享,可在线阅读,更多相关《ORACLE中OVER函数的用法Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
20SMITH
800
ADAMS
1100
FORD
3000
SCOTT
JONES
2975
30ALLEN
1600
BLAKE
2850
MARTIN
1250
JAMES
950
TURNER
1500
WARD
已选择14行。
2.先来一个简单的,注意over(...)条件的不同,
使用sum(sal)over(orderbyename)...查询员工的薪水“连续”求和,
注意over(order
byename)如果没有orderby子句,求和就不是“连续”的,
放在一起,体会一下不同之处:
selectdeptno,ename,sal,
sum(sal)over(orderbyename)连续求和,
sum(sal)over()总和,
--此处sum(sal)over()等同于sum(sal)
4
100*round(sal/sum(sal)over(),4)"
份额(%)"
5
6
/
SAL连续求和
总和份额(%)
------------------------------------------------------------
20ADAMS
1100
29025
3.79
1600
2700
5.51
30BLAKE
2850
5550
9.82
2450
8000
8.44
20FORD
3000
11000
10.34
30JAMES
950
11950
3.27
20JONES
2975
14925
10.25
10KING
5000
19925
17.23
30MARTIN
1250
21175
4.31
10MILLER
1300
22475
4.48
20SCOTT
25475
800
26275
2.76
30TURNER
1500
27775
5.17
30WARD
3.使用子分区查出各部门薪水连续的总和。
注意按部门分区。
注意over(...)条件的不同,
sum(sal)over(partitionbydeptnoorderbyename)按部门“连续”求总和
sum(sal)over(partitionbydeptno)按部门求总和
sum(sal)over(orderbydeptno,ename)不按部门“连续”求总和
sum(sal)over()不按部门,求所有员工总和,效果等同于sum(sal)。
sum(sal)over(partitionbydeptnoorderbyename)部门连续求和,--各部门的薪水"
连续"
求和
sum(sal)over(partitionbydeptno)部门总和,
--部门统计的总和,同一部门总和不变
100*round(sal/sum(sal)over(partitionbydeptno),4)"
部门份额(%)"
sum(sal)over(orderbydeptno,ename)连续求和,--所有部门的薪水"
sum(sal)over()总和,
--此处sum(sal)over()等同于sum(sal),所有员工的薪水总和
7
总份额(%)"
8
9
DEPTNOENAMESAL部门连续求和部门总和部门份额(%)连续求和总和
总份额(%)
----------------------------------------------------------------------------
10CLARK2450
8750
28
2450
KING5000
7450
57.14
7450
MILLER
14.86
8750
20ADAMS1100
10875
10.11
9850
FORD3000
4100
27.59
12850
JONES2975
7075
27.36
15825
SCOTT3000
10075
18825
SMITH800
7.36
19625
30ALLEN1600
9400
17.02
21225
BLAKE2850
4450
30.32
24075
JAMES950
5400
25025
MARTIN
6650
13.3
26275
TURNER
8150
15.96
27775
WARD1250
29025
4.来一个综合的例子,求和规则有按部门分区的,有不分区的例子
selectdeptno,ename,sal,sum(sal)over(partitionbydeptnoorderbysal)dept_sum,
sum(sal)over(orderbydeptno,sal)sum
fromemp;
SALDEPT_SUM
SUM
--------------------------------------------------
CLARK
3750
3750
8750
9550
1900
10650
4875
13625
19625
20575
3450
23075
4950
24575
ALLEN
6550
26175
29025
5.来一个逆序的,即部门从大到小排列,部门里各员工的薪水从高到低排列,累计和的规则不变。
sum(sal)over(partitionbydeptnoorderbydeptnodesc,saldes
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ORACLE OVER 函数 用法
![提示](https://static.bdocx.com/images/bang_tan.gif)