SQL笔记2:获取每个部门中当前员工薪水最高的员工
前言
具体的SOL问题
获取每个部门中当前员工薪水最高的员工
代码如下:
//法1:使用开窗函数(经典开窗) select t1.dept_no,t1.emp_no,t1.salary from ( select d.dept_no,d.emp_no,s.salary,rank() over(partition by d.dept_no order by s.salary desc) rn from dept_emp d join salaries s on d.emp_no = s.emp_no ) t1 where t1.rn = 1; //方法2:子查询,经典解法 select t1.dept_no,t1.emp_no,t1.salary from ( select d.dept_no,d.emp_no,s.salary from dept_emp d join salaries s on d.emp_no = s.emp_no ) t1 where ( select count(*) cn from ( select d.dept_no,d.emp_no,s.salary from dept_emp d join salaries s on d.emp_no = s.emp_no ) t2 where t1.dept_no = t2.dept_no and t1.salary < t2.salary ) = 0 order by t1.dept_no;