</p> 2.先来一个简单的,注重over(...)前提的分歧,. K7 m1 p) s# d: O o1 Y. U
使用 sum(sal) over (order by ename)... 发芽员工的薪水“持续”乞降,4 f: j8 G9 [/ ? I: w
注重over (order by ename)如不美观没有order by 子句,乞降就不是“持续”的,3 U' U+ B3 V1 \* T t7 T
放在一路,体味一下分歧之处:
2 V! [' J( l z1 ] SQL> break on '' -- 打瘦削据分段显示
* n2 L* Q8 [% X SQL> select deptno,ename,sal,
: B9 k3 Z- c9 d) u; B/ B2 q 2 sum(sal) over (order by ename) 持续乞降,' g+ I/ n' c( R1 e! d
3 sum(sal) over () 总和, -- 此处sum(sal) over () 等同于sum(sal)
4 o6 W& E5 ?6 B 4 100*round(sal/sum(sal) over (),4) "份额(%)"- n& E' B3 v8 I. y7 B
5 from emp
" q& d$ M# ^# T, h& O, S2 g 6 /
0 B$ a" f; }" h, Q/ R DEPTNO ENAME SAL 持续乞降 总和 份额(%)0 L' o5 d( H- }8 }" t& W
---------- ---------- ---------- ---------- ---------- ----------5 [' u% |5 c! b" m) c8 M; V
20 ADAMS 1100 1100 29025 3.793 A n p( c6 Y- }, M. d! i
30 ALLEN 1600 2700 29025 5.51
2 n( C) R/ `: M" F' ^ 30 BLAKE 2850 5550 29025 9.82: P: h4 X, U- n! {) N% f0 u- c
10 CLARK 2450 8000 29025 8.44& Z: _& C k7 [$ X" {, c+ o. P" c
20 FORD 3000 11000 29025 10.34
. D5 N( D0 n* j% w( U 30 JAMES 950 11950 29025 3.27
# v7 X# _4 g; G 20 JONES 2975 14925 29025 10.25( N! b6 E* X9 [1 g% d1 e) W/ x
10 KING 5000 19925 29025 17.235 Y2 m* k9 p4 m4 o: q
30 MARTIN 1250 21175 29025 4.31
" [7 @) G: f" A+ W4 w2 @ 10 MILLER 1300 22475 29025 4.483 P9 K, O7 ^5 a, M9 Q$ ~
20 SCOTT 3000 25475 29025 10.340 t9 F( e$ Q, a& r! F+ `7 c, d" w
20 SMITH 800 26275 29025 2.76
+ F& a, W# f d 30 TURNER 1500 27775 29025 5.17
5 Y$ K+ [6 \' t, B! s/ z 30 WARD 1250 29025 29025 4.31
/ s' p- X- v9 ~) j4 A* E$ q2 @5 ^& K: P2 \" C( o" r! ~1 f. e
已选择14行。 |