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

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

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

运行结果为:图片说明

全部评论

相关推荐

06-14 19:09
门头沟学院 Java
darius_:给制造业搞的,什么物料管理生产管理,设备管理点检,最最关键的就是一堆报表看板。个人觉得没啥技术含量都是些基本的crud,但是业务很繁琐那种
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
06-27 15:29
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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