Wyświetlenie max z funkcji średniej

Wyświetlenie max z funkcji średniej
RU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 24
0

Cześć. Mam do napisania zapytanie do przykladowej bazy danych oracle hr. Chodzi o to by wyświetlić największe średnie wynagrodzenie w danym oddziale razem z id oddziału. Wynagrodzenie oraz id oddzialy znajdują się w jednej tabeli employees. Mam cos takiego:

Kopiuj
 
select department_id, avgsal 
from 
(
  select department_id, avg(salary) as avgsal 
  from EMPLOYEES 
  group by department_id
) 
where avgsal=(select  max(avgsal) 
              from (select department_id, avg(salary) as avgsal 
                    from employees group by department_id));

Zapytanie działa, ale czy można to napisać w prostszy sposób?

JU
  • Rejestracja: dni
  • Ostatnio: dni
0

chyba trochę przekombinowałeś - spróbuj po prostu z ORDER BY i TOP 1 WITH TIES ( o ile with ties działa w oracle :) = w MS SQL Server na pewno - to tak na wypadek jakbyś miał identyczne wartości avg max).

Kopiuj
SELECT top 1 with ties department_id, avg(salary) AS avgsal 
  FROM EMPLOYEES 
  GROUP BY department_id
 ORDER BY Avgsal 

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.