*LeetCode MySQL 2つのテーブルから部門給与が最も高い従業員を検索

1917 ワード

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