--row_number()正常排名,不对并列值做处理
select e.deptno,
e.ename,
e.sal,
row_number() over(partition by e.deptno order by e.sal desc) ranks
from emp e;
--dense_rank()处理并列排名,不会占用下个名次位置
select e.deptno,
e.ename,
e.sal,
dense_rank() over(partition by e.deptno order by e.sal desc) ranks
from emp e;
--rank() over()处理并列排名,同样会处理并列排名问题,会占用下个名次位置
select e.deptno,
e.ename,
e.sal,
rank() over(partition by e.deptno order by e.sal desc) ranks
from emp e;