Sobes.tech
Junior

Care este diferența dintre instrucțiunile WHERE și HAVING în SQL?

sobes.tech AI

Răspuns de la AI

WHERE se aplică înainte de grupare și filtrează rândurile rezultate din FROM. HAVING se aplică după grupare și filtrează grupurile formate cu GROUP BY.

Exemplu:

Presupunem că avem un tabel orders cu coloanele customer_id, order_date și amount.

Găsiți toți clienții ale căror sume totale de comenzi depășesc 1000:

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

Găsiți toate comenzile cu o sumă mai mare de 1000:

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

Tabel comparativ:

Caracteristică WHERE HAVING
Aplicație Pe rândurile individuale înainte de grupare Pe grupurile de rânduri după grupare
Utilizează Coloane din FROM Funcții agregate și coloane din GROUP BY
Se execută Înainte de GROUP BY După GROUP BY
Funcții agregate Nu pot fi utilizate direct Pot fi utilizate