Junior
SQLda WHERE va HAVING iboralari orasidagi farq nima?
sobes.tech AI
AIdan javob
WHERE FROM natijalarining satrlarini filtr qilish uchun guruhlashdan oldin qo'llaniladi. HAVING guruhlashdan keyin qo'llaniladi va GROUP BY yordamida shakllantirilgan guruhlarni filtrlaydi.
Misol:
Faraz qilaylik, bizda customer_id, order_date va amount ustunlariga ega orders jadvali bor.
Jami buyurtma summasi 1000 dan oshgan barcha mijozlarni toping:
SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;
1000 dan yuqori summali barcha buyurtmalarni toping:
SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;
Taqqoslash jadvali:
| Xususiyat | WHERE | HAVING |
|---|---|---|
| Qo'llash | Ajratilgan satrlarga guruhlashdan oldin | Guruhlangan satrlarga guruhlashdan keyin |
| Ishlatadi | FROM dan ustunlar |
GROUP BY dan ustunlar va agregat funksiyalar |
| Ishga tushirish | GROUP BY dan oldin |
GROUP BY dan keyin |
| Agregat funksiyalar | To'g'ridan-to'g'ri ishlatilmaydi | Ishlatilishi mumkin |