这是SQL今日一题的第11篇文章
题目描述
获取所有部门中当前(dept_emp.to_date = '9999-01-01')员工当前(salaries.to_date='9999-01-01')薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary
这题用到dept_emp表和salaries表,以emp_no为公共字段
dept_emp表
salaries表
方法1
select d.dept_no,d.emp_no,max(s.salary) as salary from dept_emp as d,salaries as s
where d.emp_no = s.emp_no and d.to_date = '9999-01-01' and s.to_date = '9999-01-01'
group by d.dept_no,d.emp_no
通常的想法就是这样写了,max函数取最大值再对d.dept_no和d.emp_no分组,结果如下图所示,但其实这样取出来是不符合结果的,因为题目要求一个部门只有一个薪水的最大值,但因为我们对emp_no也分组了,所以会取出来一个部门下不同员工的salary