LeeCode184.部門工資最高的員工
阿新 • • 發佈:2018-12-18
Employee
表包含所有員工資訊,每個員工有其對應的 Id, salary 和 department Id。
+----+-------+--------+--------------+ | 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 查詢,找出每個部門工資最高的員工。例如,根據上述給定的表格,Max 在 IT 部門有最高工資,Henry 在 Sales 部門有最高工資。
+------------+----------+--------+ | Department | Employee | Salary | +------------+----------+--------+ | IT | Max | 90000 | | Sales | Henry | 80000 | +------------+----------+--------+
1、
select
Department.Name as Department,
Employee.Name as Employee,
Salary
from
Employee, Department
where
Employee.DepartmentId = Department.Id
and Salary = (
select Max(Salary)
from
Employee
where
Employee.DepartmentId = Department.Id
)
執行用時: 1064 ms
2、
SELECT
d.name AS 'Department',
e.name AS 'Employee',
Salary
FROM
Employee e
JOIN
Department d
ON
e.DepartmentId = d.Id
WHERE(
e.DepartmentId , Salary)
IN(
SELECT
DepartmentId,
MAX(Salary)
FROM
Employee
GROUP BY
DepartmentId
)
執行用時:297ms