SELECT GROUP BY HAVING SQL Oracle

SELECT GROUP BY HAVING - grupowanie danych a potem ustawienie warunku na wynik grupowania, np. chcemy zliczać dane w grupach

 

najlepiej zobrazuję to na przykładach:

 

......

Dostęp do całego artykułu tylko dla użytkowników zalogowanych!

stwórz swojego użytkownika: załóż nowe konto

 

Przykład 1

chcemy zliczyć sumę dzieci grupując po imieniu tak jak w  przykładzie 1 ( SELECT GROUP BY ) a następnie wyświetlić tylko te  rekordy gdzie suma dzieci jest większa od 1 czyli 2 i więcej

{accesstext mode="level" level="registered" noaccess="odpowiedź do przykładu 1 uzyskasz po zalogowaniu"}


Odpowiedź 1

select imie, sum(Liczba_dzieci) from PRACOWNICY
group by imie
having sum(Liczba_dzieci)>1;


wynik zapytania jak poniżej

Imie sum(Liczba_dzieci)
--------- -------------
Piotr 9
Marzena 2

{/accesstext}


Przykład 2

chcemy zliczyć liczba imion, ile razy dane imie występuje w tabeli PRACOWNICY tak jak w przykładzie 2 ( SELECT GROUP BY ) a  następnie wyświetlić tylko te rekordy gdzie liczba dzieci jest mniejsza niż 2 czyli 1 i mniej

{accesstext mode="level" level="registered" noaccess="odpowiedź do przykładu 2 uzyskasz po zalogowaniu"}
Odpowiedź 2

select imie, count(Liczba_dzieci) from PRACOWNICY
group by imie
having count(Liczba_dzieci)<2;

w wyniku zapytania otrzymamy:

Imie count(Liczba_dzieci)
--------- -------------
Marzena 1
Dominik 1

{/accesstext}