Sobes.tech
Junior — Middle

Kuo skiriasi WHERE ir HAVING sąlygos dirbant su SQL užklausomis?

sobes.tech AI

Atsakymas iš AI

SQL'e, sąlygos WHERE ir HAVING naudojamos duomenų filtravimui, tačiau jos taikomos skirtinguose užklausos apdorojimo etapuose:

  • WHERE filtruoja eilutes prieš grupavimą ir agregaciją. Ji riboja duomenų rinkinį, kuris bus naudojamas užklausoje.
  • HAVING filtruoja grupes po agregavimo funkcijų (pvz., SUM, COUNT, AVG) taikymo. Ji naudojama norint apriboti agreguotų rezultatų skaičių.

Pavyzdys:

SELECT skyrius, COUNT(*) kaip darbuotojų_skaičius
FROM darbuotojai
WHERE atlyginimas > 50000       -- filtruoja darbuotojus su atlyginimu > 50000
GROUP BY skyrius
HAVING COUNT(*) > 10;        -- pasirenkame skyrius, kuriuose daugiau nei 10 darbuotojų

Čia, WHERE pasirenka darbuotojus su atlyginimu virš 50000, o HAVING filtruoja skyrius, kuriuose yra daugiau nei 10 darbuotojų.