LeetCode(184)-部门工资最高的员工
题目:
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是先通过分组找到每组薪资最高的,然后找到三个表共同的项
//1 select d.name Department, e.name Employee, e.Salary from Employee e, Department d, (select DepartmentId ,max(Salary) Salary from Employee group by DepartmentId) m where e.DepartmentId=d.Id and e.DepartmentId=m.DepartmentId and e.Salary=m.Salary; //2 和上面一样先通过分组找每组工资最多的,通过将两张表并起来的方法找到。 select d.Name Department, e.Name Employee, e.Salary from Employee e inner join Department d on e.DepartmentId=d.Id where (e.DepartmentId,e.Salary) in (select DepartmentId,max(Salary) as Salary from Employee group by DepartmentId );
- 【leetcode】求部门工资最高的员工
- leetcode练习题-mysql:184. 部门工资最高的员工
- 查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名
- 查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名
- 如何用分析函数找出EMP表中每个部门工资最高的员工
- LeetCode之部门工资前三高的员工
- 如何用分析函数找出EMP表中每个部门工资最高的员工
- 部门工资最高的员工
- 查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名
- 用一个SQL语句选出每个部门工资最高的员工
- 一句sql 在所有部门中选择平均工资最高的部门所有员工
- 数据库查询-部门工资最高的员工
- 【leetcode】部门工资前三高的员工
- [数据库]关于三个比较典型的数据库试题(1.找到员工表中工资最高的前三名;2.找到员工表中薪水大于本部门平均薪水的员工;3.统计每年入职的员工个数)
- 查询薪金比“SMITH”或者“ALLEN”多的所有员工的编号、姓名、部门名称、领导姓名、部门人数、平均工资、最高及最低工资
- 面试题:查询部门最高工资的员工信息
- 面试题:查询部门最高工资的员工信息
- leetcode练习题-mysql:185. 部门工资前三高的员工
- 部门工资最高的员工
- .使用面向对象思想,输出员工信息并计算员工的工资。实现过程为:定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性; 再定义一个员工(Employee)类,该类的属