Junior — Middle
Ҳангоми кор бо суолҳои SQL, фарқияти байни шартҳои WHERE ва HAVING чист?
sobes.tech AI
Ҷавоб аз AI
WHERE ва HAVING шароитҳои филтркунӣ дар SQL мебошанд, аммо онҳо дар марҳилаҳои гуногуни коркарди маълумот татбиқ мешаванд.
WHEREхатҳоро пеш аз гурӯҳбандӣ филтр мекунад. Барои интихоби сабтҳо дар сатҳи маълумоти аслӣ истифода мешавад.HAVINGгурӯҳҳоро, ки боGROUP BYташкил шудаанд, филтр мекунад. Пас аз ҷамъбандӣ татбиқ мешавад.
Масалан:
SELECT шӯъба, COUNT(*) ҳамчун шумораи кормандон
FROM кормандон
WHERE маош > 50000 -- кормандон бо маоши > 50000-ро филтр мекунад
GROUP BY шӯъба
HAVING COUNT(*) > 10 -- шӯъбаҳое, ки беш аз 10 корманд доранд, интихоб мекунад
Дар ин ҷо аввал кормандон бо маоши зиёда аз 50000 интихоб мешаванд (WHERE), пас маълумотҳо ба шӯъбаҳо гурӯҳбандӣ мешаванд, ва дар охир танҳо шӯъбаҳое интихоб мешаванд, ки шумораи кормандон дар онҳо аз 10 зиёд аст (HAVING).