转自:http://blog.youkuaiyun.com/s630730701/article/details/51902762
在SCOTT用户下,执行下面SQL;
SELECT
s.deptno,s.ename,s.sal,
RANK() over(partition by s.deptno order by s.sal) as rank,
DENSE_RANK() over(partition by s.deptno order by s.sal) as dense_rank,
ROW_NUMBER() over(partition by s.deptno order by s.sal) as row_number
FROM emp s;
这是一个查询每个部门员工工资的排序情况
从查询结果中很明显的发现规律:
RANK() 发生不持续的编号 例如数据值 1,2,2,3 发生的编号将是1,2,2,4
DENSE_RANK() 发生持续的编号 例如数据值 1,2,2,3 发生的编号将是1,2,2,3
ROW_NUMBER() 发生持续的编号(不重复) 例如数据值 1,2,2,3 发生的编号将是1,2,3,4
本文详细介绍了在SQL中使用RANK(), DENSE_RANK() 和 ROW_NUMBER() 函数进行数据排序的方法。通过具体实例展示了这些函数在处理部门员工薪资排序时的区别,特别是针对并列情况的不同处理方式。
5万+

被折叠的 条评论
为什么被折叠?



