Zapytania Oracle

0

Do podanych poleceń napisać zapytania :
1 Wyświetl nazwy działów i liczby pracowników dla działów gdzie pracuje więcej niż 20 pracowników
2 Wyświetlić imiona i nazwiska pracowników , nazwy działów w których pracują oraz imiona i nazwiska ich kierowników
3 Wyświetlić imiona i nazwiska pracowników oraz ich wynagrodzenie dla pracowników zarabiających powyżej średniej w swoich działach
4 Wyświetlić nazwy działów oraz maksymalną minimalną i średnią pensję w tych działach . Wynik uszereguj malejąco według maksymalnej a następnie średniej pensji w dziale
5 Wyświetl nazwiska pracowników z działu 20 które nie występują w dziale 90
6 Wyświetl nazwiska pracowników z działu 30 które występują również w dziale 100
7 Wyświetlić imiona i nazwiska pracowników z działów 20 , 30 , 60
8 Wyświetl w sposób unikalny nazwiska pracowników wynik uszereguj rosnąco według nazwisk

Oto zapytania które napisałem
1 select department_name , count(*)
from departmnets d , employess e
where d.department_id = e.department_id
group by department_name
having count (employee_id)>20;

2 select p.first_name,p.last_name , d.deaprtment_name , m.first_name ,m.last_name
from employess p , employees m , departments d
where p.employees_id = m.manager_id AND d.department_id = p.department_id;

3 select first_name , last_name , salary
from employees
where salary >
(select AVG(salary)
from employees);

Mam tyle pytanie czy to jest dobrze oraz pomoc przy reszcie zapytan
Dziekuje z góry

0
  1. zamień złączenie na JOIN i powinno być OK.
  2. Jw + literówki.
  3. Źle, bo porównujesz do średniej ogółem, a masz porównać do średniej działu.
  4. No to jest proste. Jak dałeś radę z HAVING, to ze zwykłym GROUP BY tym bardziej dasz radę.
  5. NOT IN, NOT EXISTS lub LEFT JOIN z Nullem.
  6. Zwykły JOIN
  7. Prościzna - użyj IN
  8. DISTINCT

1 użytkowników online, w tym zalogowanych: 0, gości: 1