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