MySQL में GROUP BY और SUM() का उपयोग करके एक कॉलम में डुप्लिकेट मानों के आधार पर दूसरे कॉलम के मानों का योग निकाला जा सकता है।
उदाहरण परिदृश्य
नाम के अनुसार समूहित करके प्रत्येक व्यक्ति का कुल मान प्राप्त करना।
तालिका और डेटा
mysql> CREATE TABLE DemoTable (Name VARCHAR(20), Value INT);
mysql> INSERT INTO DemoTable VALUES
-> ('Chris', 50), ('David', 90), ('Chris', 60), ('Bob', 100), ('David', 80);
डेटा
+-------+-------+
| Name | Value |
+-------+-------+
| Chris | 50 |
| David | 90 |
| Chris | 60 |
| Bob | 100 |
| David | 80 |
+-------+-------+
क्वेरी: नाम के अनुसार समूहित करके योग
mysql> SELECT Name, SUM(Value) AS GrandTotal
-> FROM DemoTable
-> GROUP BY Name;
परिणाम
+-------+------------+
| Name | GrandTotal |
+-------+------------+
| Chris | 110 |
| David | 170 |
| Bob | 100 |
+-------+------------+
गणना
- Chris: 50 + 60 = 110
- David: 90 + 80 = 170
- Bob: 100
अतिरिक्त एग्रीगेशन
SELECT
Name,
SUM(Value) AS Total,
COUNT(*) AS Records,
AVG(Value) AS Average,
MIN(Value) AS Minimum,
MAX(Value) AS Maximum
FROM DemoTable
GROUP BY Name;
मुख्य बिंदु
GROUP BY- समान मानों वाली पंक्तियों को एक समूह में जोड़ता हैSUM()- प्रत्येक समूह के लिए योगSELECTमें केवल समूहीकृत कॉलम या एग्रीगेट फ़ंक्शन होने चाहिएHAVING- समूहों को फ़िल्टर करने के लिए (WHERE के बाद)
उपयोग केस: बिक्री रिपोर्ट, ग्राहक योग, श्रेणी-वार योग, समय-श्रृंखला एकत्रीकरण।