Sobes.tech
Junior

Kuo skiriasi SQL užklausos WHERE ir HAVING?

sobes.tech AI

Atsakymas iš AI

WHERE taikoma prieš grupavimą ir filtruojaprašinius FROM. HAVING taikoma po grupavimo ir filtruojapgrupes, sukurtas naudojant GROUP BY.

Pavyzdys:

Tarkime, turime lentelę orders su stulpeliais customer_id, order_date ir amount.

Raskite visus klientus, kurių bendras užsakymų suma viršija 1000:

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

Raskite visus užsakymus, kurių suma yra didesnė nei 1000:

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

Lentelės palyginimas:

Savybė WHERE HAVING
Taikymas Ant atskirų eilučių prieš grupavimą Ant grupuotų eilučių po grupavimo
Naudoja FROM stulpelius Agregavimo funkcijas ir stulpelius iš GROUP BY
Vykdomas Prieš GROUP BY Po GROUP BY
Agregavimo funkcijos Negali būti naudojamos tiesiogiai Gali būti naudojamos