23.对所有员工的当前薪水按照salary进行按照1-N的排名
题目内容:
代码及思路:
判断排名的时候,salary中肯定有重复的数字,因此需要去除这些重复的,使用DISTINCT
SELECT s1.emp_no,s1.salary,COUNT(DISTINCT s2.salary) AS rank
FROM salaries AS s1,salaries AS s2
WHERE s1.to_date='9999-01-01'
AND s2.to_date='9999-01-01'
AND s1.salary<=s2.salary
GROUP BY s1.emp_no
ORDER BY s1.salary DESC,s1.emp_no ASC;