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