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

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

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

经过了各种数据集的情况,我这个应该是都没问题了吧

SELECT ms.dept_no, s2.emp_no, ms.maxSalary
FROM salaries s2, dept_emp d2,
(SELECT d1.dept_no, MAX(s1.salary) AS maxSalary
FROM dept_emp d1 JOIN salaries s1 ON d1.emp_no = s1.emp_no
GROUP BY d1.dept_no) ms
WHERE s2.salary = ms.maxSalary AND s2.emp_no = d2.emp_no AND d2.dept_no = ms.dept_no
ORDER BY ms.dept_no

后来发现了第二种方法:
就是先把两张表联结起来,用开窗函数对每个部门里的人的工资排名,取每部门的排名为1的人出来就好了
SELECT dept_no, emp_no, maxSalary FROM
(SELECT dept_no, emp_no, salary AS maxSalary, RANK() OVER(PARTITION BY dept_no ORDER BY salary DESC) AS ranking FROM
(SELECT d.emp_no, d.dept_no, s.salary FROM dept_emp d JOIN salaries s ON d.emp_no = s.emp_no) uni) total
WHERE ranking = 1

全部评论

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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