Middle
Standartinis klausimas apie SQL: kuo skiriasi WHERE ir HAVING?
sobes.tech AI
Atsakymas iš AI
Pagrindinis skirtumas tarp WHERE ir HAVING SQL yra tas, kuriame etape jie filtruoja duomenis:
WHEREfiltruoja eilutes prieš grupavimą. Naudojamas pradinio duomenų rinkinio apribojimui.HAVINGfiltruoja grupes po taikymo agregavimo funkcijų ir grupavimo (GROUP BY).
Pavyzdys:
SELECT skyrius, COUNT(*) kaip darbuotojų_skaičius
FROM darbuotojai
WHERE atlyginimas > 50000 -- filtruoja darbuotojus su atlyginimu > 50000
GROUP BY skyrius
HAVING COUNT(*) > 10 -- renka skyrius su daugiau nei 10 darbuotojų
Čia WHERE apriboja pradinius įrašus, o HAVING galutines grupes.