Junior — Middle
Kuo skiriasi HAVING ir WHERE sąlygos kuriant SQL užklausas?
sobes.tech AI
Atsakymas iš AI
SQL'e, WHERE ir HAVING sąlygos naudojamos duomenų filtravimui, tačiau jos taikomos skirtinguose užklausos apdorojimo etapuose:
- WHERE filtruoja eilutes prieš grupavimą. Naudojama norint apriboti duomenų rinkinį, kuris bus agreguojamas.
- HAVING filtruoja grupes po agregatinių funkcijų (pvz., SUM, COUNT) taikymo.
Pavyzdys:
SELECT skyrius, COUNT(*) kaip darbuotojų_skaičius
FROM darbuotojai
WHERE atlyginimas > 50000 -- filtravimas pagal atlyginimą prieš grupavimą
GROUP BY skyrius
HAVING COUNT(*) > 10; -- filtravimas grupėms, turinčioms daugiau nei 10 darbuotojų
Čia pirmiausia pasirenkami darbuotojai su atlyginimu virš 50000 (WHERE), tada duomenys grupuojami pagal skyrių, ir tik tie skyriai, kuriuose daugiau nei 10 darbuotojų, patenka į HAVING filtrą.