方法)dense_rank()over

SELECT emp_no, salary, dense_rank()over(ORDER BY salary DESC)
FROM salaries
WHERE to_date = '9999-01-01'

为何用dense_rank : 相同分数并列且不影响排名

dense_rank() -- 1 22 33 444

rank() -- 1 22 44 666

row_number() -- 123456

21/3/25 更新
发现第一种做法没有体现 相同薪水按照emp_no排序这一点 修改如下

select emp_no, salary , dense_rank()over(order by salary desc) r
from salaries
where to_date = '9999-01-01'
order by r, emp_no asc;