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

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

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

select
    d.dept_no,
    d.emp_no,
    s.salary
from
    dept_emp as d
    join salaries as s on d.emp_no = s.emp_no
    and d.to_date = '9999-01-01'
    and s.to_date = '9999-01-01'
where
    s.salary in (
        select
            max(ss.salary)
        from
            dept_emp as dd
            join salaries as ss on dd.emp_no = ss.emp_no
            and dd.to_date = '9999-01-01'
            and ss.to_date = '9999-01-01'
            and dd.dept_no = d.dept_no
    )
order by
    d.dept_no

# 获取每个部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门编号dept_no升序排列
将要求拆解
1. 查询主体--给出dept_no,emp_no,salary 
2. 当前员工--添加条件 to_date='9999-01-01'
3. 每个部门--联合查询控制条件 on dept_emp.emp_no=salaries.emp_no
4. 薪水最高--添加条件 select max(salary)
5. 按照部门编号升序 -- order by dept_no asc

思路:
关联子查询,外表固定一个部门,内表进行子查询

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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