Ten samouczek ma na celu pomóc Ci zrozumieć i używać klauzuli HAVING w instrukcjach SQL.
Zanurzmy się.
Klauzula mająca SQL
Klauzula HAVING w języku SQL umożliwia ustawienie warunku w grupach zdefiniowanych w klauzuli SQL GROUP BY.
Możesz użyć klauzuli GROUP BY, aby uporządkować dane w różne partycje w SQL. Na grupach można wykonywać wiele czynności, takich jak funkcje agregujące.
Używając klauzuli HAVING, możesz określić warunek dla grup. Można jednak użyć klauzuli HAVING bez parowania GROUP BY. W takim przypadku klauzula HAVING zachowa się podobnie do klauzuli WHERE, która umożliwia wyszukiwanie pasujących rekordów.
Poniższy fragment kodu definiuje składnię klauzuli SQL HAVING:
WYBIERZ kolZ nazwa_tabeli
GRUPUJ WEDŁUG group_by_klauzula
MAJĄC warunek_grupy;
Przykład 1: Użycie klauzuli HAVING z tabelą filmów
Aby najlepiej zrozumieć, jak używać klauzuli HAVING w SQL, użyjemy przykładowej bazy danych dostarczonej przez MySQL.
Możesz sprawdzić następujące dostarczone zasoby, aby uzyskać więcej informacji:
Do tej ilustracji użyjemy tabeli filmów z bazy danych sakila, która znajduje się w podanym linku.
Filmy z oceną wypożyczenia 2,99 i wyższą możemy znaleźć za pomocą klauzuli HAVING, jak pokazano w poniższym zapytaniu:
Wybierz tytuł, rok_wydania, ocena, stawka_wynajmuz filmu
grupuj według oceny
mając czynsz_stawkę > = 2,99 ;
Wynikowa tabela jest następująca:
W takim przypadku zapytanie znajdzie 4 pasujące rekordy, jak pokazano w poprzedniej tabeli.
Przykład 2: Użycie klauzuli HAVING z funkcją agregującą
Możemy również użyć funkcji sum() do określenia filmu z sumą ocen filmów z określonym zakresem czynszu_wynajmu.
Wybierz tytuł, rok_wydania, ocena, stawka_wynajmu, suma ( stawka_dzierżawy )z filmu
grupuj według oceny
mający suma ( stawka_dzierżawy ) pomiędzy 500 oraz 600 ;
W takim przypadku zapytanie powinno zwrócić tabelę w następujący sposób: