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

MySQL में GROUP BY और SUM() का उपयोग करके विशिष्ट रिकॉर्ड्स के आधार पर मानों को ग्रुप करके जोड़ना

GROUP BY और SUM() के साथ विषयवार कुल अंक

विषय के अनुसार रिकॉर्ड्स ग्रुप करके अंकों का योग निकालने के लिए GROUP BY और SUM() का उपयोग करें।

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

mysql> CREATE TABLE DemoTable (
    Name VARCHAR(40),
    Subject VARCHAR(40),
    Marks INT
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable VALUES ('Chris', 'MySQL', 76);
mysql> INSERT INTO DemoTable VALUES ('Sam', 'MongoDB', 86);
mysql> INSERT INTO DemoTable VALUES ('Mike', 'MySQL', 98);
mysql> INSERT INTO DemoTable VALUES ('David', 'Java', 93);
mysql> INSERT INTO DemoTable VALUES ('Bob', 'MySQL', 57);
mysql> INSERT INTO DemoTable VALUES ('John', 'MongoDB', 77);

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-------+---------+-------+
| Name  | Subject | Marks |
+-------+---------+-------+
| Chris | MySQL   | 76    |
| Sam   | MongoDB | 86    |
| Mike  | MySQL   | 98    |
| David | Java    | 93    |
| Bob   | MySQL   | 57    |
| John  | MongoDB | 77    |
+-------+---------+-------+

विषय के अनुसार ग्रुप करके अंकों का योग निकालने के लिए क्वेरी:

mysql> SELECT Subject, SUM(Marks) FROM DemoTable GROUP BY Subject;

आउटपुट:

+---------+------------+
| Subject | SUM(Marks) |
+---------+------------+
| MySQL   | 231        |
| MongoDB | 163        |
| Java    | 93         |
+---------+------------+

व्याख्या:

  • GROUP BY Subject: रिकॉर्ड्स को विषय के अनुसार समूहित करता है
  • SUM(Marks): प्रत्येक ग्रुप के लिए अंकों का योग निकालता है:
    • MySQL: 76 + 98 + 57 = 231
    • MongoDB: 86 + 77 = 163
    • Java: 93 = 93

अतिरिक्त एग्रीगेट फंक्शन्स:

SELECT Subject,
       SUM(Marks)    AS Total_Marks,
       AVG(Marks)    AS Avg_Marks,
       COUNT(*)      AS Student_Count,
       MIN(Marks)    AS Min_Marks,
       MAX(Marks)    AS Max_Marks
FROM DemoTable
GROUP BY Subject;

HAVING के साथ फ़िल्टरिंग:

SELECT Subject, SUM(Marks) FROM DemoTable
GROUP BY Subject
HAVING SUM(Marks) > 200;  -- केवल MySQL (231) दिखेगा
  1. - MySQL में टेबल में मौजूद न होने वाले मानों को कैसे क्वेरी करें?

    MySQL में किसी टेबल में मौजूद नहीं होने वाले मानों को खोजने के लिए, UNION ALL के साथ WHERE NOT EXISTS या NOT IN का उपयोग करें। यह गैप विश्लेषण या मिसिंग सीक्वेंस खोजने के लिए उपयोगी है। उदाहरण: मिसिंग ऑटो-इन्क्रीमेंट मान खोजना ऑटो-इन्क्रीमेंट टेबल बनाएं: mysql> CREATE TABLE DemoTable1918 (

  1. - MySQL में विशिष्ट मान को फिक्स करके बाकी पंक्तियाँ रैंडम क्रम में कैसे दिखाएं?

    MySQL में किसी विशिष्ट मान वाली पंक्ति को शीर्ष पर फिक्स करके, शेष पंक्तियों को रैंडम क्रम में प्रदर्शित करने के लिए, ORDER BY में बूलियन एक्सप्रेशन और RAND() का संयोजन उपयोग करें। उदाहरण: मान 40 को शीर्ष पर रखें, बाकी रैंडम डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1921 (Number INT); डेट

  1. - MySQL में पहले तीन पंक्तियों के लिए कस्टम मान सेट करना

    ORDER BY और LIMIT से पहली N पंक्तियां अपडेट करें पहली तीन पंक्तियों के लिए एक विशिष्ट मान सेट करने के लिए ORDER BY और LIMIT 3 का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1968 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20) ); Query OK, 0 rows affected (0.0