Sobes.tech
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 WHERE sorokat 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 HAVING a 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.