Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में CASE WHEN का उपयोग करके प्रत्येक पंक्ति में उच्च मान वाले कॉलम का योग निकालना

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() का उपयोग करें।

  1. - MySQL में महीने के अनुसार टेबल में मानों का योग कैसे करें

    EXTRACT(MONTH FROM ...) और GROUP BY के साथ मासिक योग इसके लिए EXTRACT() का उपयोग करें, जो विशिष्ट महीने के रिकॉर्ड निकालने की अनुमति देता है। उदाहरण के लिए, जनवरी में सभी कीमतों को जोड़ना (वर्ष की परवाह किए बिना)। पहले टेबल बनाएं: create table DemoTable1415 ( ProductPurchaseDate date, ProductPrice

  1. - MySQL में GROUP BY और MIN() से डुप्लिकेट कॉलम मान वाले समूह का न्यूनतम मान प्राप्त करें

    किसी कॉलम (जैसे Class) के डुप्लिकेट मान वाले समूहों में से दूसरे कॉलम (जैसे Amount) का न्यूनतम मान प्राप्त करने के लिए GROUP BY और MIN() एग्रीगेट फ़ंक्शन का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1875 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Class VARCHAR(20), Amoun

  1. - MySQL में GROUP BY HAVING और IN से एकाधिक मान शर्त पूरी करने वाली पंक्तियाँ चुनें

    किसी कॉलम (जैसे Subject) में एकाधिक विशिष्ट मान (MySQL, MongoDB) **दोनों** रखने वाले समूह (FirstName) खोजने के लिए IN फ़िल्टर + GROUP BY + HAVING COUNT(*) = N का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1885 (FirstName VARCHAR(20), Subject VARCHAR(50)); डेटा डालें mysql> INSERT IN