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 |