------------------分析函数之排名
ROW_NUMBER():不会计算相同的数据,排名依次往后
RANK() :会计算相同的数据,并且会空出对应的排名
DENSE_RANK():会计算相同的数据,但是不会空出排名
--语法结构:
排名函数()OVER([PARTITION BY 分组字段[,分组字段,....]] ORDER BY 排序字段 ASC/DESC)
--ORDER BY 是一定要有的,PARTITION BY 按需使用
--比如:分别用三种函数求出工资排名
SELECt E.*,
ROW_NUMBER()OVER(ORDER BY E.SAL DESC) RN,
RANK()OVER(ORDER BY E.SAL DESC) RK,
DENSE_RANK()OVER(ORDER BY E.SAL DESC) DR
FROM EMP E;
--总结一下
排名数据 ROW_NUMBER() RANK() DENSE_RANK()
5000 1 1 1
3000 2 2 2
3000 3 2 2
1000 4 4 3
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)