条件:
员工表 -- dept_emp
薪水表 -- salaries
要求:
1、获取每个部门中当前员工薪水最高的相关信息
2、输出结果为dept_no, emp_no,maxSalary
3、按照部门编号升序排列
分析:
根据要求1中分解条件,得:
- 不同部门 -- group by dept_no
- 最高薪水 -- max(salary)
- 在职员工 -- to_date = "9999-01-01"
根据要求2中分解条件,得:
- dept_no -- dept_emp表获取
- emp_no -- dept_emp表获取
- maxSalary -- 在salaries表中获取
- 由于需要显示两个表的数据,在连接两个表时要用inner join,并同通过两表的emp_no进行匹配
根据要求3中分解条件,得:
- 部门编号升序 -- order by dept_no
做题:
select de.dept_no, de.emp_no, max(sa.salary) as maxSalary
from dept_emp as de inner join salaries as sa
on de.emp_no = sa.emp_no
and de.to_date = "9999-01-01"
and sa.to_date = "9999-01-01"
group by de.dept_no
order by de.dept_no ;
(获取每个部门中当前员工薪水最高的相关信息_牛客题霸_牛客网 (nowcoder.com))