Sobes.tech
Middle

Mi a különbség a WHERE és a HAVING között?

sobes.tech MI

Válasz az MI-től

SQL-ben a WHERE operátor a sorok szűrésére szolgál az összegzés előtt, vagyis korlátozza az adathalmazt, amely részt vesz a lekérdezésben.

HAVING már összegzett adatok szűrésére szolgál, vagyis az aggregált függvények és csoportosítások végrehajtása után.

Példa:

SELECT department, COUNT(*) as employee_count
FROM employees
WHERE salary > 50000  -- szűrjük a 50000 feletti fizetésű alkalmazottakat
GROUP BY department
HAVING COUNT(*) > 10     -- kiválasztjuk azokat a részlegeket, ahol több mint 10 ilyen alkalmazott van

Ebben az esetben először a WHERE szűri a 50000 feletti fizetésű sorokat, majd az adatok csoportosítva lesznek részlegek szerint, és a HAVING szűri a csoportokat a munkatársak száma szerint.