MySQL में CASE WHEN एक्सप्रेशन का उपयोग करके प्रत्येक पंक्ति में दो या अधिक कॉलम के उच्च मान को चुनें और उनका योग निकालें।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> X INT,
-> Y INT
-> );
Query OK, 0 rows affected (0.57 sec)
mysql> INSERT INTO DemoTable VALUES(20, 30), (40, 15), (80, 85);
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+------+------+ | X | Y | +------+------+ | 20 | 30 | | 40 | 15 | | 80 | 85 | +------+------+ 3 rows in set (0.00 sec)
पंक्ति-दर-पंक्ति विश्लेषण:
- पंक्ति 1: X=20, Y=30 → उच्च मान = 30 (Y)
- पंक्ति 2: X=40, Y=15 → उच्च मान = 40 (X)
- पंक्ति 3: X=80, Y=85 → उच्च मान = 85 (Y)
- कुल योग = 30 + 40 + 85 = 155
प्रति पंक्ति उच्च मान का योग निकालने की क्वेरी
mysql> SELECT SUM(CASE WHEN X > Y THEN X ELSE Y END) FROM DemoTable;
आउटपुट
+----------------------------------------+ | SUM(CASE WHEN X > Y THEN X ELSE Y END) | +----------------------------------------+ | 155 | +----------------------------------------+ 1 row in set (0.00 sec)
वैकल्पिक: GREATEST() फ़ंक्शन का उपयोग
SELECT SUM(GREATEST(X, Y)) FROM DemoTable;
GREATEST() दो या अधिक मानों में से अधिकतम लौटाता है और पढ़ने में आसान है। LEAST() न्यूनतम के लिए उपयोग करें।
नोट: यदि कोई मान NULL है, तो GREATEST/LEAST NULL लौटाता है। NULL को संभालने के लिए COALESCE() या IFNULL() का उपयोग करें।