题解 | #获取每个部门中当前员工薪水最高的相关信息#
获取每个部门中当前员工薪水最高的相关信息
https://www.nowcoder.com/practice/4a052e3e1df5435880d4353eb18a91c6
select
d.dept_no,
d.emp_no,
s.salary
from
dept_emp as d
join salaries as s on d.emp_no = s.emp_no
and d.to_date = '9999-01-01'
and s.to_date = '9999-01-01'
where
s.salary in (
select
max(ss.salary)
from
dept_emp as dd
join salaries as ss on dd.emp_no = ss.emp_no
and dd.to_date = '9999-01-01'
and ss.to_date = '9999-01-01'
and dd.dept_no = d.dept_no
)
order by
d.dept_no
# 获取每个部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门编号dept_no升序排列
将要求拆解
1. 查询主体--给出dept_no,emp_no,salary
2. 当前员工--添加条件 to_date='9999-01-01'
3. 每个部门--联合查询控制条件 on dept_emp.emp_no=salaries.emp_no
4. 薪水最高--添加条件 select max(salary)
5. 按照部门编号升序 -- order by dept_no asc
思路:
关联子查询,外表固定一个部门,内表进行子查询

