Sobes.tech
Junior

Jaka jest różnica między poleceniami WHERE i HAVING w SQL?

sobes.tech AI

Odpowiedź od AI

WHERE jest stosowane przed grupowaniem i filtruje wiersze wynikowe FROM. HAVING jest stosowane po grupowaniu i filtruje grupy utworzone za pomocą GROUP BY.

Przykład:

Załóżmy, że mamy tabelę orders z kolumnami customer_id, order_date i amount.

Znajdź wszystkich klientów, których łączna suma zamówień przekracza 1000:

SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;

Znajdź wszystkie zamówienia z kwotą powyżej 1000:

SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;

Tabela porównawcza:

Cecha WHERE HAVING
Zastosowanie Do pojedynczych wierszy przed grupowaniem Do grup wierszy po grupowaniu
Używa Kolumn z FROM Funkcji agregujących i kolumn z GROUP BY
Wykonywane Przed GROUP BY Po GROUP BY
Funkcje agregujące Nie mogą być używane bezpośrednio Mogą być używane