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

A WHERE és HAVING SQL-ben szűrési feltételek, de különböző adatfeldolgozási szakaszokon alkalmazódnak.

  • A WHERE sorokat mielőtt csoportosítanánk, szűri. Az eredeti adatszinten történő rekordok kiválasztására használják.
  • A HAVING a GROUP BY utasí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).