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 | Iš 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 |