“部门工资最高的员工”
思路:
根据DepartmentId分组,筛选出各部门的最高工资。
select DepartmentId,max(Salary)
from Employee
group by DepartmentId;
根据DepartmentId内连接两表,查出各部门对应的员工和工资,然后使用where…in…条件进行筛选。
select d.Name Department,e.Name Employee,Salary
from Employee e
join Department d
on e.DepartmentId = d.Id
where (e.DepartmentId,Salary)
in
(select DepartmentId,max(Salary)
from Employee
group by DepartmentId);
注意:where 全部的数据 in 筛选好的数据 结果:在全部查出的数据中摘出存在的筛好的数据。