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.
.