显示最大组中的值

时间:2018-04-10 07:10:31

标签: mysqli

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

那么,我该怎么做呢?

2 个答案:

答案 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);

http://sqlfiddle.com/#!9/62dd199/2