select s1.emp_no, s1.salary, count(distinct s2.salary) as rank
from salaries as s1, salaries as s2
where s1.salary <= s2.salary and s1.to_date='9999-01-01' and s2.to_date='9999-01-01'
group by s1.emp_no
order by rank

首先需要巩固一下知识点,distinct放在select中使用时,必须放在第一位,统计排名需要用到count()函数。
这题的解题方法,参考了网友的结题答案~