Junior — Middle
Mi a különbség a WHERE és a HAVING feltételek között SQL-lekérdezések esetén?
sobes.tech MI
Válasz az MI-től
A WHERE és HAVING SQL-ben szűrési feltételek, de különböző adatfeldolgozási szakaszokon alkalmazódnak.
- A
WHEREsorokat mielőtt csoportosítanánk, szűri. Az eredeti adatszinten történő rekordok kiválasztására használják. - A
HAVINGaGROUP BYutasítással létrehozott csoportokat szűri. Az aggregálás után alkalmazzák.
Példa:
SELECT osztály, COUNT(*) mint alkalmazott_szám
FROM alkalmazottak
WHERE fizetés > 50000 -- alkalmazottak szűrése, akiknek fizetése > 50000
GROUP BY osztály
HAVING COUNT(*) > 10 -- olyan osztályok kiválasztása, ahol több mint 10 alkalmazott van
Itt először kiválasztjuk a fizetéssel > 50000 rendelkező alkalmazottakat (WHERE), majd az adatokat osztály szerint csoportosítjuk, és végül csak azokat az osztályokat választjuk ki, ahol az alkalmazottak száma több mint 10 (HAVING).