学习oracle技术,每天学一点,每天进步一点
oracle 9i分析函数参考手册 (二)
上一篇 / 下一篇 2008-06-16 17:17:27 / 个人分类:pl/sql
ROW_NUMBER
9O4K)O9n8pv,U-H&f0功能描述:返回有序组中一行的偏移量,从而可用于按特定标准排序的行号。
:pj,g WO'J0SAMPLE:下例返回每个员工再在每个部门中按员工号排序后的顺序号
#g|J"d/IoU.`0ITPUB个人空间#b~LE7N sU*Q
SELECT department_id, last_name, employee_id, ROW_NUMBER()
j6B{O1^*w$M.[0 OVER (PARTITION BY department_id ORDER BY employee_id) AS emp_idITPUB个人空间xi2FV,z8`(`&pE5R
FROM employeesITPUB个人空间m7d2S]{w!n
WHERE department_id < 50;ITPUB个人空间 bV1C~"a'q0d2t
ITPUB个人空间7B-W'}i6Q/ef0iU
DEPARTMENT_ID LAST_NAME EMPLOYEE_ID EMP_IDITPUB个人空间$f'mhyEJ5S Xl'|p
------------- ------------------------- ----------- ----------ITPUB个人空间Ph+A5@SO U
10 Whalen 200 1ITPUB个人空间z)\/c+Rr R*H(Q
20 Hartstein 201 1
0Up0N u9b#O#I'r aV0 20 Fay 202 2ITPUB个人空间+A;c#kX'J2^
30 Raphaely 114 1
u-oQ'kWB]+h#?%}sm0 30 Khoo 115 2ITPUB个人空间U Q},ll5X hv
30 Baida 116 3
0[{T` H0 30 Tobias 117 4
`g8l bz2~,_0 30 Himuro 118 5ITPUB个人空间 w$[?Yc*ND:R\7lug
30 Colmenares 119 6ITPUB个人空间P%`McQ kVd{7`
40 Mavris 203 1ITPUB个人空间~;Q6w _`
4nUD:sDbq'L0@0sd0ITPUB个人空间"T/\&OFFEUuR
STDDEV
gVx.X@s\:t8]H0功能描述:计算当前行关于组的标准偏离。(Standard Deviation)ITPUB个人空间q.T!Cvet/d
SAMPLE:下例返回部门30按雇佣日期排序的薪水值的累积标准偏离ITPUB个人空间`J`;oj)Y
ITPUB个人空间&UM4rsh%P.`U ~.N
SELECT last_name, hire_date,salary, ITPUB个人空间2E-r`+~,U5E*q'xm
STDDEV(salary) OVER (ORDER BY hire_date) "StdDev"ITPUB个人空间B{5c/{-})s8Ipq/U
FROM employees ITPUB个人空间5Gc%KXT7Tx O zx
WHERE department_id = 30;ITPUB个人空间Ht'g#xC4F g
(S `(k_3S;i,RD0LAST_NAME HIRE_DATE SALARY StdDevITPUB个人空间\GL(y?![
------------------------- ---------- ---------- ----------
2h$ZU&E n:\0Raphaely 07-12月-94 11000 0ITPUB个人空间Lx:qolo:f+e
Khoo 18-5月 -95 3100 5586.14357
2X*n_ _0E8}.Q DXK0Tobias 24-7月 -97 2800 4650.0896ITPUB个人空间'f1ac2a?w:n
Baida 24-12月-97 2900 4035.26125
7VW]r:A6F0Himuro 15-11月-98 2600 3649.2465ITPUB个人空间[P#Q'PB ] ASn
Colmenares 10-8月 -99 2500 3362.58829ITPUB个人空间!][#b dr#G#omO\
(ki(s3?7`0ITPUB个人空间4A FB o-X*~dtx MS
STDDEV_POP ITPUB个人空间I;Fy#w&i7rN2~
功能描述:该函数计算总体标准偏离,并返回总体变量的平方根,其返回值与VAR_POP函数的平方根相同。(Standard Deviation-Population)
#o7D#rFs!n0SAMPLE:下例返回部门20、30、60的薪水值的总体标准偏差ITPUB个人空间8Pj x6ID|p
ITPUB个人空间Xe0w4uL3[%Cc*Q
SELECT department_id, last_name, salary, ITPUB个人空间7@XM4L;s^
STDDEV_POP(salary) OVER (PARTITION BY department_id) AS pop_std
o(W `]+a-B t%C0 FROM employees
9fM:N$mX-D/lw5Q[0WHERE department_id in (20,30,60);
ZLget9oD e2te0ITPUB个人空间 q5_+od3\@
DEPARTMENT_ID LAST_NAME SALARY POP_STDITPUB个人空间uw%P8a0w g2KaPl2x
------------- ------------------------- ---------- ----------
P!zWq Xc0 20 Hartstein 13000 3500
*J CL0ZvJtE3m0 20 Fay 6000 3500
%k"A g y/wR0 30 Raphaely 11000 3069.6091ITPUB个人空间/^ nE+k+}t3_9^-U&p
30 Khoo 3100 3069.6091
&epKoD9w&{0 30 Baida 2900 3069.6091ITPUB个人空间N B2P:`.^?+OeF
30 Colmenares 2500 3069.6091
w3R"C*ck0 30 Himuro 2600 3069.6091ITPUB个人空间5|:N)M%s-Evt
30 Tobias 2800 3069.6091ITPUB个人空间Cwt#JI6`/wr'v4Lp
60 Hunold 9000 1722.32401
;{9d+ej3v8C0 60 Ernst 6000 1722.32401
W1{av@,^t9c0X0 60 Austin 4800 1722.32401ITPUB个人空间+^rY}tL
60 Pataballa 4800 1722.32401ITPUB个人空间j&I6B WRri R
60 Lorentz 4200 1722.32401
@DM])i.|-H&r0
LF*pCX3Rc0ITPUB个人空间Mw)~z7u2PU-R8qc
STDDEV_SAMP
tz8_rYE rN0功能描述: 该函数计算累积样本标准偏离,并返回总体变量的平方根,其返回值与VAR_POP函数的平方根相同。(Standard Deviation-Sample)ITPUB个人空间{O|a7i@
SAMPLE:下例返回部门20、30、60的薪水值的样本标准偏差
:A9y0`P0m2^+iNlF0
_!Q ^*dn1Oj L0SELECT department_id, last_name, hire_date, salary,
L,S[PH CiUfl6R0 STDDEV_SAMP(salary) OVER ITPUB个人空间(b5bnP\oR9v
(PARTITION BY department_id ORDER BY hire_date
;U\5B(i_{$O| mVF0 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cum_sdev ITPUB个人空间8}8sd8s znr
FROM employees
%jzf+D&DVv[^&u0WHERE department_id in (20,30,60);ITPUB个人空间%o.QdVR#tw
ITPUB个人空间 ^5k8L8N[}E
DEPARTMENT_ID LAST_NAME HIRE_DATE SALARY CUM_SDEV
Xf5|6qc.G[0------------- ------------------------- ---------- ---------- ----------
%^\0IV r0 20 Hartstein 17-2月 -96 13000ITPUB个人空间#EZ1] Wc?;b(?S
20 Fay 17-8月 -97 6000 4949.74747
Q1Z1F XD V6yV U0 30 Raphaely 07-12月-94 11000
#W@'O&aZdv,D0 30 Khoo 18-5月 -95 3100 5586.14357
%c4J/Y\9}L0 30 Tobias 24-7月 -97 2800 4650.0896
9O4K)O9n8pv,U-H&f0功能描述:返回有序组中一行的偏移量,从而可用于按特定标准排序的行号。
:pj,g WO'J0SAMPLE:下例返回每个员工再在每个部门中按员工号排序后的顺序号
#g|J"d/IoU.`0ITPUB个人空间#b~LE7N sU*Q
SELECT department_id, last_name, employee_id, ROW_NUMBER()
j6B{O1^*w$M.[0 OVER (PARTITION BY department_id ORDER BY employee_id) AS emp_idITPUB个人空间xi2FV,z8`(`&pE5R
FROM employeesITPUB个人空间m7d2S]{w!n
WHERE department_id < 50;ITPUB个人空间 bV1C~"a'q0d2t
ITPUB个人空间7B-W'}i6Q/ef0iU
DEPARTMENT_ID LAST_NAME EMPLOYEE_ID EMP_IDITPUB个人空间$f'mhyEJ5S Xl'|p
------------- ------------------------- ----------- ----------ITPUB个人空间Ph+A5@SO U
10 Whalen 200 1ITPUB个人空间z)\/c+Rr R*H(Q
20 Hartstein 201 1
0Up0N u9b#O#I'r aV0 20 Fay 202 2ITPUB个人空间+A;c#kX'J2^
30 Raphaely 114 1
u-oQ'kWB]+h#?%}sm0 30 Khoo 115 2ITPUB个人空间U Q},ll5X hv
30 Baida 116 3
0[{T` H0 30 Tobias 117 4
`g8l bz2~,_0 30 Himuro 118 5ITPUB个人空间 w$[?Yc*ND:R\7lug
30 Colmenares 119 6ITPUB个人空间P%`McQ kVd{7`
40 Mavris 203 1ITPUB个人空间~;Q6w _`
4nUD:sDbq'L0@0sd0ITPUB个人空间"T/\&OFFEUuR
STDDEV
gVx.X@s\:t8]H0功能描述:计算当前行关于组的标准偏离。(Standard Deviation)ITPUB个人空间q.T!Cvet/d
SAMPLE:下例返回部门30按雇佣日期排序的薪水值的累积标准偏离ITPUB个人空间`J`;oj)Y
ITPUB个人空间&UM4rsh%P.`U ~.N
SELECT last_name, hire_date,salary, ITPUB个人空间2E-r`+~,U5E*q'xm
STDDEV(salary) OVER (ORDER BY hire_date) "StdDev"ITPUB个人空间B{5c/{-})s8Ipq/U
FROM employees ITPUB个人空间5Gc%KXT7Tx O zx
WHERE department_id = 30;ITPUB个人空间Ht'g#xC4F g
(S `(k_3S;i,RD0LAST_NAME HIRE_DATE SALARY StdDevITPUB个人空间\GL(y?![
------------------------- ---------- ---------- ----------
2h$ZU&E n:\0Raphaely 07-12月-94 11000 0ITPUB个人空间Lx:qolo:f+e
Khoo 18-5月 -95 3100 5586.14357
2X*n_ _0E8}.Q DXK0Tobias 24-7月 -97 2800 4650.0896ITPUB个人空间'f1ac2a?w:n
Baida 24-12月-97 2900 4035.26125
7VW]r:A6F0Himuro 15-11月-98 2600 3649.2465ITPUB个人空间[P#Q'PB ] ASn
Colmenares 10-8月 -99 2500 3362.58829ITPUB个人空间!][#b dr#G#omO\
(ki(s3?7`0ITPUB个人空间4A FB o-X*~dtx MS
STDDEV_POP ITPUB个人空间I;Fy#w&i7rN2~
功能描述:该函数计算总体标准偏离,并返回总体变量的平方根,其返回值与VAR_POP函数的平方根相同。(Standard Deviation-Population)
#o7D#rFs!n0SAMPLE:下例返回部门20、30、60的薪水值的总体标准偏差ITPUB个人空间8Pj x6ID|p
ITPUB个人空间Xe0w4uL3[%Cc*Q
SELECT department_id, last_name, salary, ITPUB个人空间7@XM4L;s^
STDDEV_POP(salary) OVER (PARTITION BY department_id) AS pop_std
o(W `]+a-B t%C0 FROM employees
9fM:N$mX-D/lw5Q[0WHERE department_id in (20,30,60);
ZLget9oD e2te0ITPUB个人空间 q5_+od3\@
DEPARTMENT_ID LAST_NAME SALARY POP_STDITPUB个人空间uw%P8a0w g2KaPl2x
------------- ------------------------- ---------- ----------
P!zWq Xc0 20 Hartstein 13000 3500
*J CL0ZvJtE3m0 20 Fay 6000 3500
%k"A g y/wR0 30 Raphaely 11000 3069.6091ITPUB个人空间/^ nE+k+}t3_9^-U&p
30 Khoo 3100 3069.6091
&epKoD9w&{0 30 Baida 2900 3069.6091ITPUB个人空间N B2P:`.^?+OeF
30 Colmenares 2500 3069.6091
w3R"C*ck0 30 Himuro 2600 3069.6091ITPUB个人空间5|:N)M%s-Evt
30 Tobias 2800 3069.6091ITPUB个人空间Cwt#JI6`/wr'v4Lp
60 Hunold 9000 1722.32401
;{9d+ej3v8C0 60 Ernst 6000 1722.32401
W1{av@,^t9c0X0 60 Austin 4800 1722.32401ITPUB个人空间+^rY}tL
60 Pataballa 4800 1722.32401ITPUB个人空间j&I6B WRri R
60 Lorentz 4200 1722.32401
@DM])i.|-H&r0
LF*pCX3Rc0ITPUB个人空间Mw)~z7u2PU-R8qc
STDDEV_SAMP
tz8_rYE rN0功能描述: 该函数计算累积样本标准偏离,并返回总体变量的平方根,其返回值与VAR_POP函数的平方根相同。(Standard Deviation-Sample)ITPUB个人空间{O|a7i@
SAMPLE:下例返回部门20、30、60的薪水值的样本标准偏差
:A9y0`P0m2^+iNlF0
_!Q ^*dn1Oj L0SELECT department_id, last_name, hire_date, salary,
L,S[PH CiUfl6R0 STDDEV_SAMP(salary) OVER ITPUB个人空间(b5bnP\oR9v
(PARTITION BY department_id ORDER BY hire_date
;U\5B(i_{$O| mVF0 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cum_sdev ITPUB个人空间8}8sd8s znr
FROM employees
%jzf+D&DVv[^&u0WHERE department_id in (20,30,60);ITPUB个人空间%o.QdVR#tw
ITPUB个人空间 ^5k8L8N[}E
DEPARTMENT_ID LAST_NAME HIRE_DATE SALARY CUM_SDEV
Xf5|6qc.G[0------------- ------------------------- ---------- ---------- ----------
%^\0IV r0 20 Hartstein 17-2月 -96 13000ITPUB个人空间#EZ1] Wc?;b(?S
20 Fay 17-8月 -97 6000 4949.74747
Q1Z1F XD V6yV U0 30 Raphaely 07-12月-94 11000
#W@'O&aZdv,D0 30 Khoo 18-5月 -95 3100 5586.14357
%c4J/Y\9}L0 30 Tobias 24-7月 -97 2800 4650.0896