Sobes.tech
Junior — Middle

Mi a különbség a HAVING és WHERE feltételek között SQL lekérdezések készítésekor?

sobes.tech MI

Válasz az MI-től

SQL-ben a WHERE és HAVING feltételek adatok szűrésére szolgálnak, de különböző szakaszokban alkalmazódnak a lekérdezés feldolgozásában:

  • WHERE szűri a sorokat a csoportosítás előtt. Az adathalmaz korlátozására használják, amelyet aggregálni fognak.
  • HAVING szűri a csoportokat az aggregált függvények (pl. SUM, COUNT) alkalmazása után.

Példa:

SELECT osztály, COUNT(*) mint alkalmazottak_száma
FROM alkalmazottak
WHERE fizetés > 50000       -- szűrés fizetés szerint a csoportosítás előtt
GROUP BY osztály
HAVING COUNT(*) > 10;        -- csoportok szűrése, ahol több mint 10 alkalmazott van

Itt először kiválasztják az alkalmazottakat, akiknek fizetése 50000 felett van (WHERE), majd az adatokat osztály szerint csoportosítják, és csak azok az osztályok maradnak, ahol több mint 10 alkalmazott van, átmennek a HAVING szűrőn.