Middle
Mi a különbség a WHERE és a HAVING operátorok között SQL-ben?
sobes.tech MI
Válasz az MI-től
A WHERE szűri a sorokat mielőtt csoportosítanánk (GROUP BY), míg a HAVING a csoportokat után. A WHERE használhat olyan oszlopokat, amelyek nem szerepelnek a SELECT-ben, a HAVING általában aggregált függvényeket vagy a GROUP BY-ban szereplő oszlopokat használ.
Példa:
SELECT
category,
COUNT(*) as total_items
FROM
products
WHERE
price > 10 // A termékeket a csoportosítás előtt szűrjük kategória szerint
GROUP BY
category
HAVING
COUNT(*) > 5; // Olyan kategóriákat szűrünk, ahol több mint 5 termék van
Összehasonlítás:
| Operátor | Cél | Alkalmazására | Aggregált függvények használata | A GROUP BY-hoz viszonyított sorrend |
|---|---|---|---|---|
WHERE |
Sorok szűrése | Egyedi sorok | Nem | Előtte |
HAVING |
Csoportok szűrése | Sorok csoportjai | Igen | Utána |