oracle很有用的统计函数rank和cume

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle很有用的统计函数rank和cume相关的知识,希望对你有一定的参考价值。

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_RANKSUMSAL_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的主要内容,如果未能解决你的问题,请参考以下文章

Hive学习之路 (十五)Hive分析窗口函数 CUME_DIST和PERCENT_RANK

Oracle-分析函数_总结

cume_dist vs percent_rank 或之间的差异

Oracle-- (RANK) 排名函数

Oracle 中的分析函数

postgresql里有没有像oracle中的那类分析函数