BLACK WEEKS DO -60%     |        + dodatkowe -10% z kodem: CODE10 (ważny od 150 zł)     |  

1 dni 14 godzin
close
Cart icon
User menu icon
User icon
Skontaktuj się z nami:
+48 888-916-333
Lightbulb icon
Jak to działa?
FAQ icon
FAQ
Contact icon
Kontakt
Terms of service icon
Regulamin zakupów
Privacy policy icon
Polityka prywatności
co to jest klauzula having sql

SQL - jak używać klauzuli HAVING

W języku SQL często tworzymy zapytania grupujące dane. Jeśli masz jakieś podstawowe doświadczenie z tym językiem, to pewnie kojarzysz klauzulę GROUP BY.

Czasami do naszego grupowania chcemy dodać jakieś kryterium - innymi słowy, chcemy grupować takie dane, które spełniają określone warunki. W tym celu możemy posłużyć się klauzulą HAVING. W tym artykule pokażemy podstawy użycia HAVING, z pomocą prostego przykładu. Zaczynamy!

jak używać klauzuli having w sql?

Naucz się manipulować danymi za pomocą języka SQL.

Dowiedz się więcej

Tabela

Najpierw popatrz na przykładową tabelę:

Zdjęcie wstawki do artykułu

Tabele ma nazwę orders. Zawiera trzy kolumny: unikalny identyfikator, id klienta (customer_id) oraz łączną wartość zamówienia (total_price). Nie ma tu nic szczególnie skomplikowanego.

Zauważ, że niektórzy klienci dokonali kilku zamówień. Najpierw zgrupujemy dane, używając w tym celu kolumny customer_id. Dzięki temu będziemy wiedzieć, jaka jest łączna wartość zamówień dla danego klienta. Zgrupujemy dane według kolumny customer_id i za pomocą funkcji SUM() obliczymy sumę wartości w kolumnie total_price, dla każdego unikalnego klienta:


SELECT customer_id, SUM(total_price) as total
FROM orders
GROUP BY customer_id;


Wynik wygląda tak:

Zdjęcie wstawki do artykułu

Nasz wynik to czwórka unikalnych klientów, którzy dokonali zamówień.

Klauzula HAVING

Chcemy grupować tylko tych klientów, którzy dokonali zamówień na łączna kwotę przekraczającą 1000. W tym celu użyjemy klauzuli HAVING. Popatrz na zapytanie:


SELECT customer_id, SUM(total_price) as total
FROM orders
GROUP BY customer_id
HAVING SUM(total_price) > 1000;


Ostatnią linię HAVING SUM(total_price) > 1000 należy interpretować następująco: “uwzględnij tylko tych klientów, którzy mają sumę zamówień (czyli wartość SUM(total_price)) większą od 1000”. Wynik naszego zapytania to dwóch klientów: 101 oraz 103. Popatrz na tabelę - tylko ci klienci mają sumę przekraczającą 1000.

Oczywiście kryteria można dowolnie zmieniać:


HAVING SUM(total_price) < 300;


Jaki wynik uzyskamy? Będą to klienci, którzy mają łączną kwotę zamówień mniejszą od 300. W naszej tabeli jest tylko jeden klient spełniający to kryterium: klient z id = 104.

jak korzystać z klauzuli having w sql

Naucz się manipulować danymi za pomocą języka SQL.

Dowiedz się więcej

Podsumowanie

Użycie klauzuli HAVING pozwala dodać kryteria do zgrupowanych danych. Możemy dzięki niej pogrupować dane spełniające określony warunek. Dlatego klauzuli HAVING używamy najczęściej w połączeniu z GROUP BY.

Chcesz poznać więcej przydatnych technik pracy z SQL? Z kursem Fundamenty SQL Level 3 opanujesz wiele praktycznych rozwiązań, które pozwoli ci swobodnie pracować z danymi. Wszystkiego nauczysz się z użyciem praktycznych zadań oraz ćwiczeń.