查詢部門最高工資的員工信息
其他網址
表Employee保存了所有的員工數據。
Id | Name | Salary | DepartmentId |
---|---|---|---|
1 | Joe | 70000 | 1 |
2 | Henry | 80000 | 2 |
3 | Sam | 60000 | 2 |
4 | Max | 90000 | 1 |
表Department保存了所有的部門數據。
Id | Name |
---|---|
1 | IT |
2 | Sales |
寫一段SQL查找出各部門工資最高的員工信息。如上所示,IT部門工資最高的是Max,Sales部門工資最高的是Henry。
Department | Employee | Salary |
---|---|---|
IT | Max | 90000 |
Sales | Henry | 80000 |
答案一:
SELECT D.name Department,
E1.Name AS Employee,
E1.Salary AS Salary
FROM tab_Employee E1
JOIN tab_Department D
on E1.DepartmentId = D.Id
AND E1.Salary >=
(SELECT MAX(Salary)
FROM tab_Employee E2
WHERE E1.DepartmentId = E2.DepartmentId
);
答案二:
SELECT b.Name as Department,
a.name as Employee,
a.Salary as Salary
FROM Employee as a, Department as b,
(select max(Salary) as Salary, DepartmentId from Employee group by DepartmentId) as c
WHERE a.DepartmentId = b.Id and
a.Salary = c.Salary and
a.DepartmentId = c.DepartmentId;