关于#sql#的问题,写一个SQL查询,找出每个部门获得前三高工资的所有员工占前三工资总和的比列

SQL题,写一个SQL查询,找出每个部门获得前三高工资的所有员工占前三工资总和的比列

img

到底是oracle还是hive?两个数据库的函数有区别的
我先写个oracle的

select DEPARTMENT, EMPLOYEE, SALARY,
round((ratio_to_report(salary) over(partition by DEPARTMENT))*100,2)||'%' proportion
 from (
select dense_rank() over(partition by a.departmendld order by a.salary desc) rk,
b.name department,a.name employee,a.salary
  from employee a, department b
 where a.departmendld = b.id) where rk<=3

img

问sql题麻烦用create table 和insert或者with语句把原始数据贴出来,方便回答的人调试,造数据很浪费时间的