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.