Sobes.tech
Middle

Szabványos kérdés az SQL-ről: mi a különbség a WHERE és a HAVING között?

sobes.tech MI

Válasz az MI-től

A WHERE és a HAVING közötti fő különbség az, hogy melyik szakaszban szűrik az adatokat SQL-ben:

  • A WHERE sorokat mielőtt csoportosítaná. Az eredeti adathalmaz korlátozására szolgál.
  • A HAVING csoportokat miután alkalmazták az aggregált függvényeket és a GROUP BY-t.

Példa:

SELECT osztály, COUNT(*) mint alkalmazott_szám
FROM alkalmazottak
WHERE fizetés > 50000  -- alkalmazottak szűrése fizetés szerint
GROUP BY osztály
HAVING COUNT(*) > 10      -- osztályok kiválasztása több mint 10 alkalmazottal

Itt a WHERE korlátozza az eredeti sorokat, a HAVING pedig a végső csoportokat.