Junior — Middle
Тавзеи байни операторҳои HAVING ва WHERE дар SQL ва дар кадом ҳолатҳо бояд истифода шаванд?
sobes.tech AI
Ҷавоб аз AI
Оператор WHERE се истифода мебарад барои филтр кардани сатрҳо пеш аз гурӯҳбандӣ кардани маълумотҳо. Он сатрҳоро интихоб мекунад, ки дар амалҳои минбаъда, мисли функсияҳои ҷамъбандӣ, иштирок мекунанд.
Оператор HAVING барои филтр кардани маълумоти аллакай гурӯҳбандӣшуда истифода мешавад, яъне пас аз иҷрои GROUP BY. Он имкон медиҳад, ки гурӯҳҳоро дар асоси шартҳои ҷамъбандӣ филтр кард.
Масалан:
SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000 -- филтратсияи сатрҳо бо асоси музд
GROUP BY department
HAVING COUNT(*) > 5 -- филтратсияи гурӯҳҳо бо асоси шумораи кормандон
Хулоса:
- WHERE сатрҳои инфиродӣ пеш аз гурӯҳбандӣ филтр мекунад.
- HAVING гурӯҳҳоро пас аз гурӯҳбандӣ филтр мекунад.
Барои шароитҳо аз WHERE истифода баред, барои шартҳои функсияҳои ҷамъбандӣ — аз HAVING.