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

MySQL में समान ID वाली पंक्तियों को मर्ज करके अन्य कॉलम के उच्चतम मान दिखाएं

MySQL GROUP BY और MAX(): समान ID वाली पंक्तियों को मर्ज करना

जब एक ही ID की कई पंक्तियों में अलग-अलग कॉलम भरे हों, तो GROUP BY Id के साथ MAX() का उपयोग करके प्रत्येक कॉलम का उच्चतम मान प्राप्त करके पंक्तियों को मर्ज कर सकते हैं।

उदाहरण: बिखरे हुए डेटा को मर्ज करें

टेबल बनाएं:

CREATE TABLE DemoTable (
    Id INT,
    Value1 INT, Value2 INT, Value3 INT, Value4 INT
);

INSERT INTO DemoTable (Id, Value4) VALUES (100, 30);
INSERT INTO DemoTable (Id, Value1, Value2, Value3) VALUES (100, 20, 60, 40);
INSERT INTO DemoTable (Id, Value2, Value3, Value4) VALUES (100, 90, 100, 110);

डेटा (एक ही ID 100 की 3 पंक्तियां):

+------+--------+--------+--------+--------+
| Id   | Value1 | Value2 | Value3 | Value4 |
+------+--------+--------+--------+--------+
| 100  | NULL   | NULL   | NULL   | 30     |
| 100  | 20     | 60     | 40     | NULL   |
| 100  | NULL   | 90     | 100    | 110    |
+------+--------+--------+--------+--------+

मर्ज क्वेरी: प्रत्येक कॉलम का MAX लें

SELECT 
    Id,
    MAX(Value1) AS Value1,
    MAX(Value2) AS Value2,
    MAX(Value3) AS Value3,
    MAX(Value4) AS Value4
FROM DemoTable 
GROUP BY Id;

परिणाम (एक पंक्ति, सभी उच्चतम मान):

+------+--------+--------+--------+--------+
| Id   | Value1 | Value2 | Value3 | Value4 |
+------+--------+--------+--------+--------+
| 100  | 20     | 90     | 100    | 110    |
+------+--------+--------+--------+--------+

यह कैसे काम करता है?

  • GROUP BY Id — समान ID को एक समूह में जोड़ता है
  • MAX(ValueN) — प्रत्येक समूह में उस कॉलम का अधिकतम मान (NULL को अनदेखा करता है)
  • परिणाम: प्रत्येक ID के लिए एक पंक्ति जिसमें सभी कॉलम के सर्वोत्तम मान हैं

अन्य एग्रीगेट विकल्प


            
  1. - MySQL में LEFT() फंक्शन का उपयोग करके केवल 15 वर्ण कैसे प्राप्त करें?

    MySQL में LEFT() फ़ंक्शन का उपयोग करके स्ट्रिंग के बाएं से निर्दिष्ट संख्या में वर्ण प्राप्त किए जा सकते हैं। ध्यान दें: यह शब्द नहीं, वर्ण गिनता है। सिंटैक्स LEFT(string, length) उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREATE TABLE DemoTable (Title TEXT); mysql> INSERT INTO DemoTable VALU

  1. - MySQL में ENUM कॉलम से केवल 'NO' मानों की गणना करें

    MySQL में ENUM कॉलम पर सशर्त गणना के लिए बूलियन अभिव्यक्ति का योग (SUM(condition)) उपयोग कर सकते हैं। MySQL में TRUE = 1 और FALSE = 0 होता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1829 ( Name VARCHAR(20), isTopper ENUM(YES,NO) ); डेटा डालें mysql> INSERT INTO DemoTable1829 VALUES(

  1. - MySQL में GROUP_CONCAT और SUM का उपयोग करके कई पंक्तियों के स्ट्रिंग्स को संयोजित करें और ID का योग दिखाएं

    MySQL में GROUP_CONCAT और SUM के साथ पंक्तियों को एक पंक्ति में संयोजित करना MySQL का GROUP_CONCAT() फ़ंक्शन एक समूह के भीतर गैर-NULL मानों को एक स्ट्रिंग में जोड़ता है, और SUM() संख्यात्मक मानों को जोड़ता है। साथ में वे कई पंक्तियों को एक सारांश पंक्ति में संक्षिप्त करने की अनुमति देते हैं। टेबल ब