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

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

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-26 10:08
门头沟学院 C++
北京Golang实习,一个月4700,吃住都不报,公司位置在海淀。请问友友怎么看呢?如果要租房的话有什么建议吗
码农索隆:租房肯定是合租了,剩下的钱,差不多够正常吃饭了,看看能不能学到东西吧
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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