1. 程式人生 > >oracle很有用的統計函數rank和cume

oracle很有用的統計函數rank和cume

clerk

oracle 10g 裏面有scott用戶

alter user scott account unlock ;

使用 scott 密碼 tiger 進入,修改密碼,改用戶有emp 表;

rank函數 :

SELECT deptno, job, SUM(sal),
RANK() OVER(PARTITION BY deptno ORDER BY
SUM(sal) DESC)
AS jobdep_rank,RANK() OVER(ORDER BY SUM(sal) DESC) AS sumsal_rank
FROM emp
GROUP BY deptno, job ;


DEPTNOJOBSUM(SAL)JOBDEP_RANK
SUMSAL_RANK
20ANALYST600011
30SALESMAN560012
10PRESIDENT500013
20MANAGER297524
30MANAGER285025
10MANAGER245026
20CLERK190037
10CLERK130038
30CLERK95039


cume_dist

SELECT deptno, job, SUM(sal),
CUME_DIST() OVER(PARTITION BY deptno ORDER BY
SUM(sal) DESC)
AS cume_dist_per_dep
FROM emp
GROUP BY deptno, job
ORDER BY deptno, SUM(sal);


DEPTNOJOBSUM(SAL)
CUME_DIST_PER_DEP
10CLERK13001
10MANAGER24500.666667
10PRESIDENT50000.333333
20CLERK19001
20MANAGER29750.666667
20ANALYST60000.333333
30CLERK9501
30MANAGER28500.666667
30SALESMAN56000.333333

有了這兩個有用的函數,排名和百分比很快就能得到了吧。


oracle很有用的統計函數rank和cume