SQL:返回列上具有最大值的多行

时间:2015-09-09 18:40:14

标签: mysql sql

您可以从here找到问题。

当每个部门中有多个薪水最高的人时,以下SQL命令会输出预期结果 - 输出薪水最高的所有员工:

select d.Name as Department, e.Name as Employee, e.Salary as Salary
from 
(select Name, Salary, DepartmentId
from Employee
having (Salary, DepartmentId) in (
    select max(Salary), DepartmentId
    from Employee
    group by DepartmentId)
)e, Department d
where e.DepartmentId = d.Id

但是,即使有多名员工具有相同的最高薪水,以下命令也只输出一名员工:

select d.Name as Department, e.Name as Employee, e.Salary as Salary
from 
(select Name, Salary, DepartmentId
from Employee
group by DepartmentId
having Salary = max(Salary)
)e, Department d
where e.DepartmentId = d.Id

任何人都可以向我解释为什么后者不起作用?谢谢!

0 个答案:

没有答案
相关问题