184. Department Highest Salary#1

来源:互联网 发布:mmd走路动作数据下载 编辑:程序博客网 时间:2024/06/07 05:35

题目摘要
选出每栋Department中薪水最高的人(每栋楼不知一个)

解法
Solution1

# Write your MySQL query statement belowSELECT d.Name AS Department, e.Name As Employee, e.SalaryFrom Employee AS eINNER JOIN (    SELECT max(Salary) AS Salary, DepartmentId    FROM Employee    GROUP BY DepartmentId    ) AS etON e.Salary = et.Salary AND e.DepartmentId = et.DepartmentIdINNER JOIN Department AS dON e.DepartmentId = d.Id

注意
Solution1
1. 由于不止一个,所以连表的主表不能是GROUP BY出来的字表

可问问题

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

+—-+——-+——–+————–+
| 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.

+—-+———-+
| 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 |
+————+———-+——–+

0 0