select * from employee where salary In (select MAX(salary) from employee where salary NOT IN (Select MAX(salary) from employee))
我有一个表“employee”,其中包含两列“name”和“salary”以及数据:
name salary
A 10000
B 12000
C 13000
D 12000
E 12000
F 15000
现在,当我运行此查询时,它会显示:
(C 13000)
输出错误。我想要这个输出:
name salary
B 12000
D 12000
E 12000
那么,我该怎么做呢?
答案 0 :(得分:1)
如果你想要拥有最多人的薪水,那么它将使用COUNT()
:
SELECT
*
FROM EMPLOYEE
WHERE Salary = (
SELECT
Salary
FROM EMPLOYEE
GROUP BY Salary
ORDER BY COUNT(Salary) DESC
LIMIT 1
)
我也做了一个SQL小提琴:http://www.sqlfiddle.com/#!9/08b183/11/0
答案 1 :(得分:1)
您可以尝试以下查询:
SELECT e.*
FROM employee e
WHERE salary = (SELECT distinct salary FROM employee group by salary order by count(salary) desc limit 1);