Sobes.tech
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