Middle
176
Aké sú rozdiely medzi operátormi WHERE a HAVING v SQL?
Odpoveď od AI
sobes.tech AI
WHERE filtruje riadky pred zoskupením (GROUP BY), a HAVING filtruje skupiny po zoskupení. WHERE môže používať stĺpce, ktoré nie sú v SELECT, HAVING zvyčajne používa agregačné funkcie alebo stĺpce prítomné v GROUP BY.
Príklad:
SELECT
category,
COUNT(*) as total_items
FROM
products
WHERE
price > 10 // Filtrujeme produkty pred zoskupením podľa kategórie
GROUP BY
category
HAVING
COUNT(*) > 5; // Filtrujeme kategórie s viac ako 5 produktami
Porovnanie:
| Operator | Účel | Používa sa na | Môže používať agregačné funkcie | Poradie voči GROUP BY |
|---|---|---|---|---|
WHERE |
Filtruje riadky | Jednotlivé riadky | Nie | Pred |
HAVING |
Filtruje skupiny | Skupiny riadkov | Áno | Po |