Junior — Middle
Kuo skiriasi HAVING ir WHERE sąlygos dirbant su SQL užklausomis?
sobes.tech AI
Atsakymas iš AI
Pagrindinis skirtumas tarp WHERE ir HAVING SQL:
- WHERE filtruoją eilutes prieš grupavimą (GROUP BY). Taikoma atskiriems įrašams.
- HAVING filtruoją grupes po grupavimo. Naudojama sąlygoms taikyti agregatinių funkcijų (pvz., COUNT, SUM).
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, kuriuose daugiau nei 10 darbuotojų
Čia WHERE parenka eilutes grupavimui, o HAVING filtruoją jau grupuotus duomenis.