Q :
编写一个 SQL 查询,找出每个部门工资最高的员工。例如,根据下述给定的表格,Max 在 IT 部门有最高工资,Henry 在 Sales 部门有最高工资。
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 |
A:
SELECT
Department.name as "Department",
Employee.name as "Employee",
Salary
FROM
Employee JOIN Department
ON
Employee.departmentId = Department.Id
WHERE
(Employee.departmentId, Salary) IN
( SELECT departmentId, MAX(Salary)
FROM Employee
GROUP BY departmentId
)
;