оракул запрос найти максимальную зарплату в отношении рабочих мест - PullRequest
0 голосов
/ 08 июня 2018

У меня есть следующие таблицы

Employee24(Employeeid, firstname, jobroles)
Salary25(SalaryId, Employeeid, BasicSal, Allowences)

Я хочу найти сотрудника с max salary(BasicSal + Allowences) относительно jobroles

  select e.firstname, e.lastname, 
   s.HighestSal, e.jobroles
 from Employee24 e inner join 
 (select employeeid, max(basicsal) as HighestSal
  from salary25 
  group by jobrole
 ) s 

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете использовать функциональность keep - очень мощный метод в Oracle:

select e.jobrole, max(BasicSal + Allowances) as max_salary,
       max(e.EmployeeId) keep (dense_rank first order by BasicSal + Allowances desc) as employee_with_max
from salary25 s join
     employee25 e
     on s.Employeeid = e.Employeeid
group by e.jobrole;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...