直接用窗口函数:
select
emp_no,
salary,
dense_rank()over(order by salary desc) t_rank
from salaries
where to_date='9999-01-01'
order by t_rank,emp_no
本题有三个知识点:
1、dense_rank()over(order by salary desc) 使用窗口函数并列连续型排序,简洁快速;
2、order by t_rank,emp_no已经对序号进行排序(默认升序,asc可忽略),无需再嵌套一层子查询,也无需对t_rank再聚合一次;
3、记得筛选出to_date='9999-01-01'表示只筛选出在职员工(未离职)