题解 | 获取每个部门中薪水最高的员工相关信息

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

https://www.nowcoder.com/practice/4a052e3e1df5435880d4353eb18a91c6

这题主要分为三个步骤:

1.联合查询部门下的员工最大的薪资

select 	e.dept_no,
		max(s.salary)
		from dept_emp e
		left join salaries s
		on e.emp_no = s.emp_no
		group by dept_no

2.根据上边查询到的dept_no 和 salary作为查询条件,进行过滤,找到差缺的emp_no信息即可

select  e.dept_no,
        e.emp_no,
        s.salary
        from dept_emp as e
        left join salaries as s
        on e.emp_no = s.emp_no
        where(e.dept_no,s.salary) in (
            select 	e.dept_no,
		            max(s.salary)
		            from dept_emp e
		            left join salaries s
		            on e.emp_no = s.emp_no
		            group by dept_no
        );

3.根据题意,最后还要按照dept_no升序排序

# 先聚合查询部门下的最大员工薪资
# 在联合查询所有的信息,同时限定条件为上边查到的内容
# 最后按照dept_no升序排序即可
select  e.dept_no,
        e.emp_no,
        s.salary
        from dept_emp as e
        left join salaries as s
        on e.emp_no = s.emp_no
        where(e.dept_no,s.salary) in (
            select 	e.dept_no,
		            max(s.salary)
		            from dept_emp e
		            left join salaries s
		            on e.emp_no = s.emp_no
		            group by dept_no
        )
        order by e.dept_no asc;

全部评论

相关推荐

迷茫的大四🐶:💐孝子启动失败,改为启动咏鹅
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务