Sobes.tech
Junior — Middle

Mi a különbség a HAVING és a WHERE feltétel között SQL lekérdezéseknél?

sobes.tech MI

Válasz az MI-től

A WHERE és HAVING közötti fő különbség SQL-ben:

  • WHERE szűri a sorokat azelőtt, a csoportosítás (GROUP BY) előtt. Alkalmazható az egyes rekordokra.
  • HAVING szűri a csoportokat a csoportosítás után. Általában aggregált függvények (pl. COUNT, SUM) feltételeire használják.

Példa:

SELECT osztály, COUNT(*) mint alkalmazott_szám
FROM alkalmazottak
WHERE fizetés > 50000    -- szűri a 50000 feletti fizetésű alkalmazottakat
GROUP BY osztály
HAVING COUNT(*) > 10     -- kiválasztja az osztályokat, ahol több mint 10 alkalmazott van

Itt a WHERE a sorokat választja ki a csoportosításhoz, a HAVING pedig a már csoportosított adatokat szűri.