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

  • WHERE filtruoja eilutes prieš grupavimą. Naudojamas pradinio duomenų rinkinio apribojimui.
  • HAVING filtruoja 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.