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