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

with q1 as (select d.emp_no, d.dept_no, s.salary from salaries s join dept_emp d on d.emp_no=s.emp_no)
select q1.dept_no,q1.emp_no,q1.salary from
q1 join
(select dept_no, MAX(salary) as maxSalary from q1 group by dept_no) as m  
on q1.dept_no=m.dept_no and q1.salary=m.maxSalary order by dept_no;

首先构造通用表q1

with q1 as (select d.emp_no, d.dept_no, s.salary from salaries s join dept_emp d on d.emp_no=s.emp_no)

然后构造各部门最大薪资表m:

(select dept_no, MAX(salary) as maxSalary from q1 group by dept_no) as m

最后通过联结表q1和m中部门和最大薪资两个条件反向确定员工编号,获取最终结果。

全部评论

相关推荐

11-13 20:16
已编辑
厦门理工学院 软件测试
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。 把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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