पाठ 17 / 28

HAVING बनाम WHERE

समूहीकरण से पहले पंक्तियाँ फ़िल्टर करें, या बाद में समूह।

समूह फ़िल्टर करना

WHERE समूहीकरण से पहले पंक्तियाँ फ़िल्टर करता है; HAVING एग्रीगेशन के बाद समूह फ़िल्टर करता है।

SELECT customer_id, SUM(amount) AS total
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 2000;

Output:

customer_id | total
1           | 3200.00

WHERE में एग्रीगेट उपयोग नहीं होता

WHERE SUM(amount) > 2000 अमान्य है — जब WHERE चलता है तब एग्रीगेट अभी मौजूद नहीं होते। इसके बजाय HAVING उपयोग करें।