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

MySQL में GROUP BY और ORDER BY से समान नाम वाले छात्रों के स्कोर का योग निकालें

नाम के अनुसार ग्रुप करके कुल स्कोर जोड़ना और सॉर्ट करना

समान नाम वाले छात्रों के स्कोर का योग निकालने के लिए GROUP BY StudentName के साथ SUM(Score) उपयोग करें, फिर ORDER BY SUM(Score) से सॉर्ट करें।

टेबल और डेटा

CREATE TABLE countRowValueDemo (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(20),
    StudentMathScore INT
);

INSERT INTO countRowValueDemo (StudentName, StudentMathScore) VALUES
('Larry', 45), ('Mike', 56), ('John', 60), ('David', 40),
('David', 70), ('John', 80), ('David', 88);

केस 1: अवरोही क्रम (उच्चतम कुल पहले)

SELECT StudentName, SUM(StudentMathScore) AS TOTAL_SCORE
FROM countRowValueDemo
GROUP BY StudentName
ORDER BY SUM(StudentMathScore) DESC;

आउटपुट

+-------------+-------------+
| StudentName | TOTAL_SCORE |
+-------------+-------------+
| David       | 198         |
| John        | 140         |
| Mike        | 56          |
| Larry       | 45          |
+-------------+-------------+

केस 2: आरोही क्रम (न्यूनतम कुल पहले)

SELECT StudentName, SUM(StudentMathScore) AS TOTAL_SCORE
FROM countRowValueDemo
GROUP BY StudentName
ORDER BY SUM(StudentMathScore) ASC;

आउटपुट

+-------------+-------------+
| StudentName | TOTAL_SCORE |
+-------------+-------------+
| Larry       | 45          |
| Mike        | 56          |
| John        | 140         |
| David       | 198         |
+-------------+-------------+

बेस्ट प्रैक्टिस

  • ORDER BY में एग्रीगेट फंक्शन दोहराने के बजाय एलियास उपयोग करें: ORDER BY TOTAL_SCORE DESC (MySQL अनुमति देता है)।
  • नाम से ग्रुप करना तभी सही है जब नाम वास्तव में अद्वितीय पहचानकर्ता हो; वास्तविक ऐप में StudentId या अलग Student टेबल से जॉइन करें।
  • ONLY_FULL_GROUP_BY मोड (डिफ़ॉल्ट) में SELECT सूची में केवल ग्रुप-बाय कॉलम या एग्रीगेट होने चाहिए।
  1. - MySQL में सबक्वेरी और ORDER BY DESC LIMIT से अंतिम 3 पंक्तियां आरोही क्रम में प्राप्त करें

    टेबल की अंतिम N पंक्तियों को आरोही क्रम में प्राप्त करने के लिए: पहले अवरोही क्रम में N पंक्तियां लें, फिर बाहरी क्वेरी में आरोही क्रम में सॉर्ट करें। सिंटैक्स SELECT * FROM ( SELECT * FROM टेबल_नाम ORDER BY कॉलम_नाम DESC LIMIT 3 ) AS alias ORDER BY कॉलम_नाम ASC; उदाहरण 1. टेबल बनाएं

  1. - MySQL में दशमलव बिंदु से दो स्थान पहले का अंक कैसे प्राप्त करें

    समाधान DIV ऑपरेटर का उपयोग करके पूर्णांक विभाजन करें। उदाहरण टेबल बनाएं: INSERT INTO demo1 VALUES (456.54), (50.64), (1000.78); क्वेरी SELECT value DIV 10 % 10 FROM demo1; परिणाम +-----------------+ | value DIV 10%10 | +-----------------+ | 5 | | 5 | | 0

  1. - MySQL में GROUP BY HAVING से समान ID वाली पंक्तियों का SUM निकालें

    GROUP BY + HAVING = 2000; उदाहरण डेटा insert into demo84 values(1,2000), (1,2000), (2,1800), (2,2200), (3,1700); परिणाम: कुल ≥ 2000 वाले ID +------+-------+ | id | Total | +------+-------+ | 1 | 4000 | | 2  | 4000 | +------+-------+ ID 1: 2000+2000 = 4000 ID 2: 1800+2200 = 4000 I