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

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中部门和最大薪资两个条件反向确定员工编号,获取最终结果。

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 18:00
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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