SQL12 - 获取所有部门中当前员工薪水最高的相关信息
题目描述:
获取所有部门中当前(dept_emp.to_date = '9999-01-01')员工当前(salaries.to_date='9999-01-01')薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门升序排列。
1 CREATE TABLE `dept_emp` ( 2 `emp_no` int(11) NOT NULL, 3 `dept_no` char(4) NOT NULL, 4 `from_date` date NOT NULL, 5 `to_date` date NOT NULL, 6 PRIMARY KEY (`emp_no`,`dept_no`)); 7 8 CREATE TABLE `salaries` ( 9 `emp_no` int(11) NOT NULL, 10 `salary` int(11) NOT NULL, 11 `from_date` date NOT NULL, 12 `to_date` date NOT NULL, 13 PRIMARY KEY (`emp_no`,`from_date`));
题目描述:
中等
题目描述:
使用开窗函数进行解答
ps:附一个开窗函数的外贴 https://www.cnblogs.com/lihaoyang/p/6756956.html
1 select t.dept_no,t.emp_no,t.salary from 2 ( 3 select 4 de.dept_no,de.emp_no,s.salary, 5 row_number() over(partition by de.dept_no order by s.salary desc) as rk 6 from ( 7 select * from dept_emp where to_date='9999-01-01') de 8 inner join 9 (select * from salaries where to_date='9999-01-01') s on de.emp_no=s.emp_no 10 )t 11 where t.rk=1;

浙公网安备 33010602011771号