Q200510-01: 求部门工资最高的员工
问题: 求部门工资最高的员工
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 |
+------------+----------+--------+
解答:
mysql> select d.name as department,b.name as employee,b.salary from (select e.* from employee e inner join -> (select max(salary) as max_salary,departmentid from employee group by departmentid) a -> on e.salary=a.max_salary and e.departmentid=a.departmentid) b left join department d -> on b.departmentid=d.id ; +------------+----------+--------+ | department | employee | salary | +------------+----------+--------+ | Sales | Henry | 80000 | | IT | Max | 90000 | +------------+----------+--------+ 2 rows in set (0.00 sec)
过程:
create table employee( id int, name varchar(20) not null, salary int, departmentid int not null, primary key(id)) insert into employee(id,name,salary,departmentid) values ('1','Joe','70000','1'); insert into employee(id,name,salary,departmentid) values ('2','Henry','80000','2'); insert into employee(id,name,salary,departmentid) values ('3','Sam','60000','2'); insert into employee(id,name,salary,departmentid) values ('4','Max','90000','1'); create table department( id int, name varchar(20) not null, primary key(id)) insert into department(id,name) values('1','IT'); insert into department(id,name) values('2','Sales'); select max(salary) as max_salary,departmentid from employee group by departmentid select e.* from employee e inner join (select max(salary) as max_salary,departmentid from employee group by departmentid) a on e.salary=a.max_salary and e.departmentid=a.departmentid select b.id,b.name,b.salary,d.name from (select e.* from employee e inner join (select max(salary) as max_salary,departmentid from employee group by departmentid) a on e.salary=a.max_salary and e.departmentid=a.departmentid) b left join department d on b.departmentid=d.id select d.name as department,b.name as employee,b.salary from (select e.* from employee e inner join (select max(salary) as max_salary,departmentid from employee group by departmentid) a on e.salary=a.max_salary and e.departmentid=a.departmentid) b left join department d on b.departmentid=d.id
--2020年5月10日 17点22分--
1. 部门工资最高的员工
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 |
+------------+----------+--------+
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2018-05-10 从网易云音乐网页版无登陆下载MP3的办法
2018-05-10 放入MP3的文件夹显示一些没用的标题,艺术家,唱片集怎么办?
2018-05-10 【Nodejs】外研社小学英语教材一年级起各年级英语音频下载(全)
2018-05-10 【Nodejs】使用request批量下载MP3,文件数量内容都没问题
2018-05-10 【Nodejs】使用http.request批量下载MP3,发现网络文件大于1000K时下载文件为0K
2018-05-10 403 Forbidden
2018-05-10 【Nodejs】外研社一年级起各年级英语音频下载(缺456年级上)