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

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

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

select T.dept_no,salaries.emp_no,T.maxSalary
from (dept_emp left join salaries on dept_emp.emp_no=salaries.emp_no)
 left join
(select d.dept_no,max(s.salary) as maxSalary
from dept_emp as d left join salaries  as s 
on d.emp_no=s.emp_no  
group by d.dept_no) as T
on dept_emp.dept_no=T.dept_no
where salaries.salary=T.maxSalary
order by T.dept_no

dept_emp left join salaries on dept_emp.emp_no=salaries.emp_no
部门表一定包含所有员工,所以以员工编号相等为条件左连接以后每个员工的部门和薪水一定能连到一起----------------------------表一

select d.dept_no,max(s.salary) as maxSalary
from dept_emp as d left join salaries as s
on d.emp_no=s.emp_no
group by d.dept_no
根据表一计算出每个部门的最大工资---表二 形如
dept_no maxSalary

表一以部门相等为条件左连接表二,就得到表三
emp_no,dept_no, salary,maxSalary(属性没写全,只写了需要用到的)
然后对salary和maxSalary判等,输出符合条件的员工编号

全部评论

相关推荐

SadnessAlex:跟三十五岁原则一样,人太多给这些***惯坏了
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务