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.