方法一:
思路:
使用窗口函数 DENSE_RANK () OVER () 函数即可将实现薪水按照 salary 进行按照 1-N 的排名,相同 salary 并列。
补充:
RANK () OVER (ORDR BY < 列名>): 计算排名,如果存在相同位次的记录,则会跳过之后的位次。如,1,1,1,4
DENSE_RANK () OVER (ORDER BY < 列名>): 计算排序,即使存在相同为此的记录,也不会跳过之后的位次。如 1,1,1,2
ROW_NUMBER () OVER (ORDER BY < 列名>): 计算排序,赋予唯一的连续位次。如 1,2,3,4
代码:
select
emp_no,
salary,
dense_rank() over (
order by
salary desc
) t_rank
from
salaries
order by
salary desc,
emp_no asc



京公网安备 11010502036488号