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

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

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

首先,我们很容易想到通过链接两个table获取有关于emp_no,dep_no和salary的联合图表,然后通过group by dep_no和max(salary)来进行每个部门最高工资的筛选,但是如何获取对应的(dep_no和最高工资)下的员工id,如果只是简单用salary匹配max(salary),那么在不同的部门中有部分的分数和另一个部分的最高分一样的时候,会出现错误选择。所以处于逻辑和严谨的角度出发,我们应该同时对这个“数组”进行匹配。那有什么方法可以从一个有emp_no,dep_no和salary的图表中获得匹配到另一个表中存储着我们关于dep_no和maxSalary呢?答案就是使用join.

因此第一个图表如下注释图表1:也就是outTable,包含了emp_no,dep_no和salary

第二个图表:也就是high,包含了dept_no, maxSalary

将两个表通过dept_no和salary相连结,我们就可以得到想要的内容啦!

最后记得加上order by条件。


select outTable.dept_no,outTable.emp_no,high.maxSalary
from 
(select e.dept_no,e.emp_no,s.salary
from dept_emp e
join salaries s on e.emp_no=s.emp_no) as outTable -- 图表1
join
(select dept_no,max(salary)as maxSalary
from dept_emp e
join salaries s on e.emp_no=s.emp_no
group by dept_no) as high  -- 图表2
on outTable.dept_no =high.dept_no and outTable.salary=high.maxSalary
order by outTable.dept_no;

全部评论

相关推荐

07-07 11:33
江南大学 Java
已经在暑假实习了 ,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 11:30
找工作7个月,投了7000封,3段世界五百强实习,才有一个offer,牛油们肯定比我强吧
码农索隆:不对不对不对,实习经历这么厉害,简历也没少投,问题出在哪呢
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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