MySQL में आप GROUP BY के साथ HAVING क्लॉज का उपयोग करके यह प्राप्त कर सकते हैं। सिंटैक्स निम्नलिखित है:
SELECT yourColumnName1, SUM(yourColumnName2) FROM yourTableName GROUP BY yourColumnName1 HAVING COUNT(yourColumnName2) = COUNT(*);
इसे समझने के लिए एक टेबल बनाते हैं:
CREATE TABLE SumDemo (
Id INT,
Amount INT
);
टेबल में कुछ रिकॉर्ड डालें:
INSERT INTO SumDemo VALUES (1, 200); INSERT INTO SumDemo VALUES (2, 100); INSERT INTO SumDemo VALUES (2, NULL); INSERT INTO SumDemo VALUES (1, 300); INSERT INTO SumDemo VALUES (2, 100); INSERT INTO SumDemo VALUES (1, 500);
सभी रिकॉर्ड देखने के लिए:
SELECT * FROM SumDemo;
आउटपुट
+------+--------+ | Id | Amount | +------+--------+ | 1 | 200 | | 2 | 100 | | 2 | NULL | | 1 | 300 | | 2 | 100 | | 1 | 500 | +------+--------+
अब वह क्वेरी जो तभी SUM लौटाएगी जब उस ग्रुप की सभी पंक्तियाँ NULL न हों:
SELECT Id, SUM(Amount) FROM SumDemo GROUP BY Id HAVING COUNT(Amount) = COUNT(*);
आउटपुट: चूँकि Id 2 में एक NULL मान है, इसलिए उसके किसी भी मान को SUM में नहीं जोड़ा जाएगा। केवल Id 1 के मान जुड़ेंगे (200 + 300 + 500 = 1000)।
आउटपुट
+------+-------------+ | Id | SUM(Amount) | +------+-------------+ | 1 | 1000 | +------+-------------+