题解 | #对所有员工的薪水按照salary降序进行1-N的排名#
对所有员工的薪水按照salary降序进行1-N的排名
http://www.nowcoder.com/practice/b9068bfe5df74276bd015b9729eec4bf
用dense_rank排名,可以处理并列情况并且不会跳排名
select emp_no, salary,
dense_rank() over (order by salary desc) as ranking
from salaries
通过计算有多少salary不小于当前salary来计算排名
select s1.emp_no, s1.salary,
(select count(distinct salary)
from salaries
where salary >= s1.salary) as ranking
from salaries as s1
order by s1.salary desc, s1.emp_no
查看6道真题和解析
