Sobes.tech
Junior

Jaký je rozdíl mezi příkazy WHERE a HAVING v SQL?

sobes.tech AI

Odpověď od AI

WHERE se aplikuje před seskupením a filtruje řádky výsledku FROM. HAVING se aplikuje po seskupení a filtruje skupiny vytvořené pomocí GROUP BY.

Příklad:

Předpokládejme, že máme tabulku orders se sloupci customer_id, order_date a amount.

Najděte všechny zákazníky, jejichž celková částka objednávek přesahuje 1000:

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

Najděte všechny objednávky s částkou vyšší než 1000:

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

Porovnávací tabulka:

Vlastnost WHERE HAVING
Použití Na jednotlivé řádky před seskupením Na seskupené řádky po seskupení
Používá Sloupce z FROM Agregační funkce a sloupce z GROUP BY
Provádí se Před GROUP BY Po GROUP BY
Agregační funkce Nemůže být použita přímo Může být použita