MySQL GROUP BY के साथ डेटा एग्रीगेशन
किसी कॉलम के आधार पर संख्यात्मक मानों को जोड़ने (समूहित योग) के लिए, GROUP BY क्लॉज के साथ SUM() एग्रीगेट फ़ंक्शन का उपयोग करें। यह प्रति समूह योग, औसत, गिनती आदि की गणना करता है।
उदाहरण: छात्र स्कोर का योग
पहले एक छात्र स्कोर टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable1443 (
-> StudentId INT,
-> StudentScore INT
-> );
Query OK, 0 rows affected (0.42 sec)
mysql> INSERT INTO DemoTable1443 VALUES
-> (100, 78), (101, 89), (100, 88), (101, 97);
Query OK, 4 rows affected (0.20 sec)
mysql> SELECT * FROM DemoTable1443;
+-----------+--------------+
| StudentId | StudentScore |
+-----------+--------------+
| 100 | 78 |
| 101 | 89 |
| 100 | 88 |
| 101 | 97 |
+-----------+--------------+
4 rows in set (0.00 sec)
GROUP BY के साथ SUM क्वेरी
mysql> SELECT StudentId, SUM(StudentScore)
-> FROM DemoTable1443
-> GROUP BY StudentId;
परिणाम
+-----------+-------------------+ | StudentId | sum(StudentScore) | +-----------+-------------------+ | 100 | 166 | | 101 | 186 | +-----------+-------------------+ 2 rows in set (0.00 sec)
GROUP BY कैसे काम करता है
- समूह बनाएं: समान StudentId वाली पंक्तियों को एक साथ समूहित करता है
- एग्रीगेट लागू करें: प्रत्येक समूह के लिए SUM() की गणना करता है
- प्रति समूह एक पंक्ति लौटाता है: प्रत्येक अद्वितीय StudentId के लिए एक परिणाम पंक्ति
सामान्य एग्रीगेट फ़ंक्शन
| फ़ंक्शन | उद्देश्य |
|---|---|
SUM() | कुल योग |
AVG() | औसत मान |
COUNT() | पंक्ति गिनती |
MIN() | न्यूनतम मान |
MAX() | अधिकतम मान |