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
SQL-ben a WHERE és a HAVING feltételeket az adatok szűrésére használják, de különböző szakaszaiban alkalmazódnak a lekérdezés feldolgozásának:
- A
WHEREsorokat mielőtt a csoportosítás és aggregálás megtörténne, szűri. Korlátozza az adathalmazt, amelyet a lekérdezésben használnak. - A
HAVINGa csoportokat az aggregációs függvények (pl.SUM,COUNT,AVG) alkalmazása után szűri. Azt szolgálja, hogy korlátozza az aggregált eredményeket.
Példa:
SELECT osztaly, COUNT(*) mint alkalmazott_szam
FROM alkalmazottak
WHERE fizetes > 50000 -- szűri a fizetés > 50000 alkalmazottakat
GROUP BY osztaly
HAVING COUNT(*) > 10; -- kiválasztja az osztályokat, ahol több mint 10 alkalmazott van
Itt a WHERE kiválasztja a 50000 feletti fizetésű alkalmazottakat, a HAVING pedig azokat az osztályokat szűri, ahol több mint 10 alkalmazott van.