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

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

全部评论

相关推荐

2024-12-15 17:45
已编辑
上海交通大学 算法工程师
百度 MEG商业研发部,做app内容加热原生广告 1095,n*16+60,签字费分两年年末发
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务