शर्ती योग के लिए SUM(IF()) पैटर्न
MySQL में आप SUM(IF(condition, value_if_true, value_if_false)) का उपयोग करके केवल उन पंक्तियों का योग कर सकते हैं जो एक शर्त पूरी करती हैं।
उदाहरण टेबल
mysql> CREATE TABLE SumWithIfCondition (
-> ModeOfPayment VARCHAR(100),
-> Amount INT
-> );
mysql> INSERT INTO SumWithIfCondition VALUES('Offline',10);
mysql> INSERT INTO SumWithIfCondition VALUES('Online',100);
mysql> INSERT INTO SumWithIfCondition VALUES('Offline',20);
mysql> INSERT INTO SumWithIfCondition VALUES('Online',200);
mysql> INSERT INTO SumWithIfCondition VALUES('Offline',30);
mysql> INSERT INTO SumWithIfCondition VALUES('Online',300);
सभी रिकॉर्ड:
mysql> SELECT * FROM SumWithIfCondition;
+---------------+--------+ | ModeOfPayment | Amount | +---------------+--------+ | Offline | 10 | | Online | 100 | | Offline | 20 | | Online | 200 | | Offline | 30 | | Online | 300 | +---------------+--------+
केस 1: केवल 'Online' भुगतान का योग
mysql> SELECT SUM(IF(ModeOfPayment = 'Online', Amount, 0)) AS TotalAmount FROM SumWithIfCondition;
+-------------+ | TotalAmount | +-------------+ | 600 | +-------------+
केस 2: केवल 'Offline' भुगतान का योग
mysql> SELECT SUM(IF(ModeOfPayment = 'Offline', Amount, 0)) AS TotalAmount FROM SumWithIfCondition;
+-------------+ | TotalAmount | +-------------+ | 60 | +-------------+
वैकल्पिक: MySQL 8.0+ में आप SUM(CASE WHEN ModeOfPayment='Online' THEN Amount ELSE 0 END) भी उपयोग कर सकते हैं।