1. RANK函数:返回相应的排名,数值相同的可以返回相同的排名。但是有相同排名的行数会累加(例如排名顺序:1,2,2,4)
select name ,RANK() OVER(ORDER BY SAL DESC) AS SAL_RANK FROM EMP;
2. DENSE_RANK:返回相应的排名,数值相同的可以返回相同的排名。有相同排名的行数不会累加(例如排名顺序:1,2,2,4)
select name ,DENSE_RANK() OVER(ORDER BY SAL DESC) AS SAL_RANK FROM EMP;
3.ROW_NUMBER:返回相应的排名,数值相同的不会返回相同的排名。会以此累计往下排序
例如:
值:100,200,200,300
排名顺序:1,2,3,4
select name ,ROW_NUMBER() OVER(ORDER BY SAL DESC) AS SAL_RANK FROM EMP;
4.PERCENT_RANK:返回对应百分比排名(也不一定理解为排名,也可以理解为一个占比),数值相同也会返回相同排名。
select name ,ROUND(PERCENT_RANK() OVER(ORDER BY SAL DESC) *100,2) || '%' AS SAL_RANK FROM EMP;
5.CUST_DIST:累计分布情况函数
select ename,sal,CUST_DIST() OVER(PARTITION BY DEPTNO ORDER BY sal ) CUST_DIST from emp。解析:查询与共工资在部门的分布情况。