我正在使用查询从表中获取前三条记录,使用限制如下:
select name, salary
from employees
order by salary desc
limit 3;
问题是可能有相同薪水的员工,我不希望我的限制为3
----------------------------
| name | salary |
----------------------------
| Robert | 10000 |
| Jon | 20000 |
| Alexander | 30000 |
| James | 20000 |
| Mike | 40000 |
----------------------------
所以在这个例子中我想要限制为4,因为有两个雇员的薪水是20000.有没有办法在不事先知道会有多少人的情况下考虑重复?
答案 0 :(得分:2)
您需要先确定要包含的薪资范围。
select name, salary
from employees
where salary in ( select distinct salary
from employees
order by salary desc
limit 3 )
order by salary DESC ;