Junior
Фарқи байни фармонҳои WHERE ва HAVING дар SQL чист?
sobes.tech AI
Ҷавоб аз AI
WHERE сатрҳоро пеш аз гурӯҳбандӣ филтр мекунад. HAVING гурӯҳҳоро, ки бо GROUP BY сохта шудаанд, пас аз гурӯҳбандӣ филтр мекунад.
WHERE:
- Ба сатрҳои инфиродӣ татбиқ мешавад.
- Наметавонад функсияҳои ҷамъоварӣ (
COUNT,SUM,AVG,MIN,MAX) истифода барад. - Пеш аз
GROUP BY,HAVINGваSELECTиҷро мешавад.
HAVING:
- Ба гурӯҳҳои сатрҳо татбиқ мешавад.
- Метавонад функсияҳои ҷамъоварӣ истифода барад.
- Пас аз
WHEREваGROUP BY, аммо пеш азSELECTиҷро мешавад.
Масал:
Мо муштариёни шаҳри 'Маскав' (ки WHERE) ёфтем, ки ҷамъии умумии фармоишҳо аз 1000 зиёд аст (ки HAVING).
SELECT customer_id, SUM(order_amount) -- ID муштарӣ ва ҷамъии фармоишҳояшро интихоб мекунад
FROM orders -- Аз ҷадвали фармоишҳо
WHERE city = 'Маскав' -- Сатрҳоро пеш аз гурӯҳбандӣ филтр мекунад, танҳо фармоишҳо аз Маскав мемонад
GROUP BY customer_id -- Сатрҳоро ба ID муштарӣ гурӯҳбандӣ мекунад
HAVING SUM(order_amount) > 1000; -- Гурӯҳҳоро филтр мекунад, танҳо онҳое бо ҷамъии фармоишҳо > 1000 мемонанд