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

MySQL में एकाधिक कॉलम पर GROUP BY और MAX का उपयोग

एकाधिक कॉलम पर GROUP BY और MAX का उपयोग करके प्रत्येक ग्रुप के लिए अधिकतम मान वाली पंक्तियाँ प्राप्त करें।

एक टेबल बनाते हैं:

CREATE TABLE GroupByMaxDemo (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    CategoryId INT,
    Value1 INT,
    Value2 INT
);

रिकॉर्ड डालें:

INSERT INTO GroupByMaxDemo (CategoryId, Value1, Value2) VALUES (10, 100, 50);
INSERT INTO GroupByMaxDemo (CategoryId, Value1, Value2) VALUES (10, 100, 70);
INSERT INTO GroupByMaxDemo (CategoryId, Value1, Value2) VALUES (10, 50, 100);
INSERT INTO GroupByMaxDemo (CategoryId, Value1, Value2) VALUES (20, 180, 150);

सभी रिकॉर्ड देखें:

SELECT * FROM GroupByMaxDemo;

आउटपुट

+----+------------+--------+--------+
| Id | CategoryId | Value1 | Value2 |
+----+------------+--------+--------+
| 1  | 10         | 100    | 50     |
| 2  | 10         | 100    | 70     |
| 3  | 10         | 50     | 100    |
| 4  | 20         | 180    | 150    |
+----+------------+--------+--------+

प्रत्येक CategoryId के लिए अधिकतम Value1 वाली पंक्ति का अधिकतम Value2 प्राप्त करें:

SELECT t2.CategoryId, t2.Value1, MAX(t2.Value2)
FROM (
    SELECT CategoryId, MAX(Value1) AS Value1
    FROM GroupByMaxDemo
    GROUP BY CategoryId
) t1
INNER JOIN GroupByMaxDemo t2 
    ON t2.CategoryId = t1.CategoryId AND t2.Value1 = t1.Value1
GROUP BY t2.CategoryId, t2.Value1;

आउटपुट

+------------+--------+------------------+
| CategoryId | Value1 | MAX(t2.Value2)   |
+------------+--------+------------------+
| 10         | 100    | 70               |
| 20         | 180    | 150              |
+------------+--------+------------------+

MySQL 8.0+ में सरल तरीका: ROW_NUMBER() विंडो फंक्शन का उपयोग करें।

  1. - MySQL में GROUP_CONCAT() और CONCAT() का उपयोग करके एकाधिक पंक्तियों और कॉलम को एक पंक्ति में संयोजित करना

    MySQL में GROUP_CONCAT() के साथ पंक्तियों को एक स्ट्रिंग में संयोजित करना एकाधिक पंक्तियों और कॉलम को एक स्ट्रिंग में संयोजित करने के लिए, GROUP_CONCAT() (पंक्तियों को जोड़ता है) के साथ CONCAT() (कॉलम को जोड़ता है) का उपयोग करें। उदाहरण: ग्राहक डेटा को एक स्ट्रिंग में संयोजित करना SELECT * FROM De

  1. - MySQL में GROUP BY और COUNT का उपयोग करके डुप्लिकेट रिकॉर्ड्स समूहित करें और अधिकतम मान प्रदर्शित करें

    GROUP BY और COUNT के साथ डुप्लिकेट रिकॉर्ड्स समूहित करना MySQL में जब आप किसी कॉलम पर GROUP BY लागू करते हैं और साथ ही COUNT और अन्य एग्रीगेट फ़ंक्शन का उपयोग करते हैं, तो आप डुप्लिकेट मानों को समूहित करके सारांश सांख्यिकी प्राप्त कर सकते हैं। टेबल बनाना ); Query OK, 0 rows affected (0.79 sec) डे

  1. - MySQL डेटाबेस बनाना और उपयोग करना

    एक बार MySQL इंस्टॉल हो जाने पर, और उपयोगकर्ता को पता है कि SQL स्टेटमेंट कैसे दर्ज करने हैं, एक डेटाबेस एक्सेस किया जा सकता है। आइए डेटाबेस में टेबल से डेटा प्राप्त करने के लिए आवश्यक चरणों को समझते हैं: सर्वर से कनेक्ट करें एक डेटाबेस बनाएं एक टेबल बनाएं टेबल में डेटा लोड करें टेबल से डेटा प्राप