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

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

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

解题思路:

使用2个子查询,第一个子查询查出每个部门每名员工的薪水;第二个子查询查出每个部门的最高薪水。

1.查询查出每个部门每名员工的薪水
SELECT d.emp_no, d.dept_no, s.salary 
FROM dept_emp d
LEFT JOIN salaries s 
ON d.emp_no = s.emp_no 

执行结果如下:

2.查出每个部门的最高薪水
    SELECT
        d.dept_no,
        max( salary )  salary
    FROM
        dept_emp d
        LEFT JOIN salaries s ON d.emp_no = s.emp_no 
    GROUP BY
    d.dept_no 

图片说明

3.通过这两张子表做链接,只保留部门编号相同并且薪水相同的数据

所以最终的查询sql语句为

SELECT
    t1.dept_no,
    t1.emp_no,
    t1.salary 
FROM
    (
    SELECT
        d.emp_no,
        d.dept_no,
        s.salary 
    FROM
        dept_emp d
        LEFT JOIN salaries s ON d.emp_no = s.emp_no 
    ) t1,
    (
    SELECT
        d.dept_no,
        max( salary ) salary 
    FROM
        dept_emp d
        LEFT JOIN salaries s ON d.emp_no = s.emp_no 
    GROUP BY
        d.dept_no 
    ) t2 
WHERE
    t1.dept_no = t2.dept_no 
    AND t1.salary = t2.salary 
ORDER BY
    t1.dept_no

运行结果为:图片说明

全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
08-19 10:15
点赞 评论 收藏
分享
07-20 21:57
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
8.15投递8.19收到笔试
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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