leetcode 184 部门工资最高的员工
题目描述:Employee
表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id。
Department
表包含公司所有部门的信息。
编写一个 SQL 查询,找出每个部门工资最高的员工。例如,根据上述给定的表格,Max 在 IT 部门有最高工资,Henry 在 Sales 部门有最高工资。
解答思路:
查询目标:查询 department, 员工名字,员工工资 (意味着程序将使用select语句)
查询范围:Employee
,Department
两个表格
查询条件:每个部门具有最高工资的员工(意味着同一个部门的员工工资将进行比较)
分析:为了获取完整的返回结果,需要从题目给出的 Employee
和 Department
两个表格中获取数据,所以使用 inner join 关键字将两个表格中的内容匹配并连接。
为了分别得到每个部门最高工资,我们需要在on中限制salary的数值,并使用 where 子句来限定当前返回的员工仅与同一个部门的员工进行工资数额的比较(不包括其他部门的员工)。
程序解答:
select de.name as Department, em.name as Employee, em.salary from department de inner join employee em on de.id = em.departmentid and em.salary >= (select max(Salary) from Employee where DepartmentId = de.Id)
posted on 2019-04-14 20:44 图子会变成好的程序员 阅读(291) 评论(0) 编辑 收藏 举报