Junior — Middle
Paaiškinkite skirtumus tarp HAVING operatoriaus ir WHERE sąlygos SQL ir kada juos naudoti.
sobes.tech AI
Atsakymas iš AI
SQL'e, WHERE sąlyga filtruoja eilutes prieš grupavimą, o HAVING — po jo.
- WHERE taikoma atskiriems lentelės eilių elementams ir riboja duomenų rinkinį, kuris bus agreguojamas.
- HAVING taikoma agregavimo funkcijų rezultatams ir filtruojamos grupės, sukurtos naudojant GROUP BY.
Pavyzdys:
SELECT skyrius, COUNT(*) kaip darbuotojų_skaičius
FROM darbuotojai
WHERE atlyginimas > 50000 -- filtruojame darbuotojus su atlyginimu virš 50000
GROUP BY skyrius
HAVING COUNT(*) > 10 -- pasirenkame skyrius su daugiau nei 10 darbuotojų
Naudokite WHERE norėdami filtruoti pradinius duomenis, o HAVING — agreguotus rezultatus.