Źródło: Arkusze CKE
Co będzie wynikiem działania poniższego kodu SQL?
SELECT COUNT(*)
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
Warianty odpowiedzi
-
A
Liczba pracowników z najwyższą pensją
-
B
Średnia pensja wszystkich pracowników
-
C
Błąd składni SQL
-
D
Liczba pracowników z pensją powyżej średniej
Wyjaśnienie
Aby bez problemu zrozumieć to zapytanie, musisz rozbić je na dwa etapy i zacząć od środka, czyli od nawiasu.
Podzapytanie w nawiasie oblicza średnią pensję wszystkich pracowników w firmie za pomocą funkcji agregującej AVG.
Główne zapytanie pobiera ten wynik i porównuje z nim zarobki każdego pracownika z osobna. Klauzula WHERE odrzuca wszystkich, którzy zarabiają tyle samo lub mniej niż średnia, a funkcja COUNT zlicza, ile osób pozostało. W efekcie otrzymujesz dokładną liczbę pracowników zarabiających powyżej średniej firmowej.