SQL 在考虑重复项时使用限制进行查询
SQL query using limit while considering duplicates
我正在使用查询从 table 中获取前 3 条记录,使用限制如下:
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。有没有办法在事先不知道会有多少人的情况下考虑重复?
您需要先确定要包含的薪资范围。
select name, salary
from employees
where salary in ( select distinct salary
from employees
order by salary desc
limit 3 )
order by salary DESC ;
我正在使用查询从 table 中获取前 3 条记录,使用限制如下:
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。有没有办法在事先不知道会有多少人的情况下考虑重复?
您需要先确定要包含的薪资范围。
select name, salary
from employees
where salary in ( select distinct salary
from employees
order by salary desc
limit 3 )
order by salary DESC ;