Sobes.tech
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.