Hej,
mam takie zadanie:
Dla każdego działu wypisać stanowisko, na którym zatrudniono najwięcej pracowników w tym dziale
schemat bazy w google grafika https://www.google.pl/search?q=emp+dept+salgrade+tables+in+oracle&source=lnms&tbm=isch&sa=X&ved=0ahUKEwizxuLa6OvaAhUBuywKHbS7D-YQ_AUICigB&biw=927&bih=994#imgrc=1MSdYzoHazcZlM:
To zadanie muszę zrobić wykorzystując podzapytanie skorelowane
Oto co zrobiłam:
- to zapytanie zwraca mi dla każdego stanowiska (job) w dziale ile osób ją wykonuje
select deptno, job, count()
from emp
group by deptno, job
order by deptno, count() desc;
nie wiem jak przerobić powyższe zapytanie aby zwracało mi tylko te maksymalne wyniki i aby było podzapytaniem skorelowanym.
tak próbowałam:
select deptno, job, count()
from emp
group by deptno
having count() = (select max(count(*)), job, deptno
from emp
group by job, deptno);
select deptno, job, count()
from emp e
group by deptno
having (count(), deptno) in (select max(count(*)), deptno
from emp
where e.empno = emp.empno
group by deptno, job);
oba zapytania są błędne, nie wiem jak z tym ruszyć
mam takie dane, że np w jednym dziale będę miała 2 stanowiska, które wykonuje taka sama liczba osób i tutaj chcę zwrócić te dwa stanowiska