获取每个部门中当前员工薪水最高的相关信息

获取每个部门中当前员工薪水最高的相关信息

http://www.nowcoder.com/questionTerminal/4a052e3e1df5435880d4353eb18a91c6

链接:https://www.nowcoder.com/questionTerminal/4a052e3e1df5435880d4353eb18a91c6?toCommentId=8510753&ran=226
来源:牛客网

简述:需求 :各个部门薪水最高的员工基础信息
解决:需要关联出这样一个表,包含员工信息,所在部门信息及部门最高薪水
需要三个表关联
表1:员工薪水表
表2:员工部门表
表1 join 表 2 on 工号=工号 -- 获取员工所在部门信息
表3:从上述关联表中 group by 通过max()函数 获取各个部门及对应的最高工资
表4:表1 left 表2 on 工号=工号 left 表3 on 部门号=部门号
表4 信息 : 员工号,部门号,员工薪资,所在部门最高薪资
select * from 表4 where 员工薪资 = 所在部门最高工资 order by 部门号

-- 注意 防止出现相同薪水 且其中某份薪水为某个部门最高薪水的情况
select emp.dept_no,emp.emp_no,d.salary from (
-- 关联出来员工和所在的部门
dept_emp emp left join salaries on emp.emp_no = salaries.emp_no
-- 关联出各个各个员工所在部门的最大薪水
left join (
-- 获取分组及各组的最大薪水
select dept_no,max(salary) salary from (
select b.salary salary,a.dept_no,a.emp_no emp_no from (
dept_emp a left join salaries b on a.emp_no = b.emp_no
)
) c
group by dept_no
) d on emp.dept_no = d.dept_no
-- 条件:员工薪水等于部门最大薪水
) where d.salary = salaries.salary order by emp.dept_no

图片说明

全部评论

相关推荐

02-17 20:43
西北大学 Java
在做测评的猫头鹰很紧张:他问你,你问deep seek
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务