[SQL]LeetCode184. 部門工資最高的員工 | Department Highest Salary

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-tnleruvt-md.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

The Employee table holds all employees. Every employee has an Id, a salary, and there is also a column for the department Id.git

+----+-------+--------+--------------+
| Id | Name  | Salary | DepartmentId |
+----+-------+--------+--------------+
| 1  | Joe   | 70000  | 1            |
| 2  | Henry | 80000  | 2            |
| 3  | Sam   | 60000  | 2            |
| 4  | Max   | 90000  | 1            |
+----+-------+--------+--------------+

The Department table holds all departments of the company.github

+----+----------+
| Id | Name     |
+----+----------+
| 1  | IT       |
| 2  | Sales    |
+----+----------+

Write a SQL query to find employees who have the highest salary in each of the departments. For the above tables, Max has the highest salary in the IT department and Henry has the highest salary in the Sales department.微信

+------------+----------+--------+
| Department | Employee | Salary |
+------------+----------+--------+
| IT         | Max      | 90000  |
| Sales      | Henry    | 80000  |
+------------+----------+--------+

Employee 表包含全部員工信息,每一個員工有其對應的 Id, salary 和 department Id。spa

+----+-------+--------+--------------+
| Id | Name  | Salary | DepartmentId |
+----+-------+--------+--------------+
| 1  | Joe   | 70000  | 1            |
| 2  | Henry | 80000  | 2            |
| 3  | Sam   | 60000  | 2            |
| 4  | Max   | 90000  | 1            |
+----+-------+--------+--------------+

Department 表包含公司全部部門的信息。code

+----+----------+
| Id | Name     |
+----+----------+
| 1  | IT       |
| 2  | Sales    |
+----+----------+

編寫一個 SQL 查詢,找出每一個部門工資最高的員工。例如,根據上述給定的表格,Max 在 IT 部門有最高工資,Henry 在 Sales 部門有最高工資。htm

+------------+----------+--------+
| Department | Employee | Salary |
+------------+----------+--------+
| IT         | Max      | 90000  |
| Sales      | Henry    | 80000  |
+------------+----------+--------+

236ms
 1 # Write your MySQL query statement below
 2 select 
 3 D.Name as Department,
 4 E.name as Employee,
 5 Salary
 6 from Employee E 
 7 join Department D 
 8 on E.DepartmentId=D.Id 
 9 where (E.DepartmentId,E.Salary) IN 
10 (select DepartmentId,max(Salary) 
11  from Employee 
12  group by DepartmentId)

239msblog

1 select department.name as 'Department',employee.name as 'Employee',salary as 'Salary' from employee join department on employee.departmentid = department.id where (employee.departmentid,employee.salary) in (select departmentid, max(salary) from employee group by departmentid)

244msget

 1 # Write your MySQL query statement below
 2 
 3 SELECT
 4     Department.name AS 'Department',
 5     Employee.name AS 'Employee',
 6     Salary
 7 FROM
 8     Employee
 9         JOIN
10     Department ON Employee.DepartmentId = Department.Id
11 WHERE
12     (Employee.DepartmentId , Salary) IN
13     (   SELECT
14             DepartmentId, MAX(Salary)
15         FROM
16             Employee
17         GROUP BY DepartmentId
18     )
19 ;

252ms博客

 1 # Write your MySQL query statement below
 2 
 3 SELECT t2.name as Department, t1.Name as employee, t1.salary
 4 FROM employee t1
 5 JOIN department t2
 6 ON t1.departmentid = t2.id
 7 WHERE (t1.departmentid, t1.salary) in 
 8         (SELECT departmentid, MAX(salary)
 9         FROM employee
10         GROUP BY 1)
11 ORDER BY 1, 3 DESC
相關文章
相關標籤/搜索