Znajdź źródła: „Posiadanie” SQL – wiadomości – gazety – książki – scholar – JSTOR (wrzesień 2018) (Learn how and when to remove this template message)
Klauzula HAVING
w języku SQL określa, że instrukcja SQL SELECT
musi zwracać tylko wiersze, w których wartości zagregowane spełniają określone warunki.
HAVING
i WHERE
są często mylone przez początkujących, ale służą one do różnych celów. WHERE
jest brany pod uwagę na wcześniejszym etapie wykonywania zapytania, filtrując wiersze odczytywane z tabel. Jeśli zapytanie zawiera GROUP BY
, dane z tabel są grupowane i agregowane. Po wykonaniu operacji agregacji zastosowany zostaje HAVING
, który odfiltrowuje wiersze nie spełniające określonych warunków. Dlatego WHERE
ma zastosowanie do danych odczytywanych z tabel, a HAVING
powinien być stosowany tylko do danych zagregowanych, które nie są znane w początkowej fazie zapytania.
Aby wyświetlić stan obecny utworzony przez klauzulę GROUP BY
, należy zastosować klauzulę HAVING
.
.