提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
题目描述
有一个薪水表salaries简况如下:
对所有员工的薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列:
解题思路
1.通过子查询查询比当前选定的员工薪水低的人数+1得到每个员工的排名
2.通过ORDER BY将检索出来的表项按照排名进行排序
参考代码
SELECT S1.emp_no, S1.salary, (SELECT COUNT(DISTINCT S2.salary) + 1
FROM salaries AS S2
WHERE S2.salary > S1.salary) AS t_rank
FROM salaries AS S1
ORDER BY t_rank