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

डुप्लिकेट IDs का औसत निकालकर अधिकतम औसत कैसे प्रदर्शित करें?

डुप्लिकेट IDs के लिए औसत और अधिकतम औसत खोजना

जब आपके पास डुप्लिकेट IDs हों और आप प्रत्येक ID का औसत निकालकर उनमें से अधिकतम औसत खोजना चाहें, तो MySQL में AVG(), MAX() और GROUP BY का संयोजन उपयोग करें।

टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> PlayerId INT,
    -> PlayerScore INT
    -> );
Query OK, 0 rows affected (0.55 sec)

mysql> INSERT INTO DemoTable VALUES (1,78);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES (2,82);
Query OK, 1 row affected (0.25 sec)
mysql> INSERT INTO DemoTable VALUES (1,45);
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES (3,97);
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO DemoTable VALUES (2,79);
Query OK, 1 row affected (0.12 sec)

सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable;
+----------+-------------+
| PlayerId | PlayerScore |
+----------+-------------+
|        1 |          78 |
|        2 |          82 |
|        1 |          45 |
|        3 |          97 |
|        2 |          79 |
+----------+-------------+
5 rows in set (0.00 sec)

औसत 80 से अधिक वाले PlayerIds खोजने का क्वेरी

mysql> SELECT PlayerId FROM DemoTable
    -> GROUP BY PlayerId
    -> HAVING AVG(PlayerScore) > 80;

परिणाम

+----------+
| PlayerId |
+----------+
|        2 |
|        3 |
+----------+
2 rows in set (0.00 sec)

व्याख्या

  • GROUP BY PlayerId: समान PlayerId वाली पंक्तियों को समूहित करता है
  • AVG(PlayerScore): प्रत्येक समूह के लिए औसत स्कोर गणना करता है
  • HAVING AVG(PlayerScore) > 80: केवल उन समूहों को फ़िल्टर करता है जिनका औसत 80 से अधिक है

गणना विवरण

PlayerIdस्कोर्सऔसत
178, 4561.5
282, 7980.5
39797

केवल PlayerId 2 (औसत 80.5) और 3 (औसत 97) की शर्त पूरी करते हैं।

अधिकतम औसत मान प्राप्त करने के लिए

SELECT PlayerId, AVG(PlayerScore) AS AvgScore
FROM DemoTable
GROUP BY PlayerId
ORDER BY AvgScore DESC
LIMIT 1;

यह उच्चतम औसत स्कोर वाला PlayerId लौटाएगा।

  1. - MySQL में GROUP BY HAVING से डुप्लिकेट कॉलम मान खोजें और प्रदर्शित करें

    किसी कॉलम में डुप्लिकेट मान (एक से अधिक बार आने वाले) खोजने के लिए GROUP BY और 1 का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1858 (ModelNumber VARCHAR(50)); डेटा डालें mysql> INSERT INTO DemoTable1858 VALUES(Audi A4), (Audi A6), (Audi A4), (Audi Q5), (Audi R8), (Audi Q5); डुप्लि

  1. - MySQL में ORDER BY ASC के साथ NULL मानों को नीचे कैसे दिखाएं?

    MySQL में ORDER BY ASC डिफ़ॉल्ट रूप से NULL मानों को पहले रखता है। NULL मानों को अंत में (नीचे) रखते हुए आरोही क्रम बनाए रखने के लिए, CASE स्टेटमेंट या IS NULL चेक के साथ कस्टम सॉर्टिंग लागू करें। उदाहरण: NULL और खाली स्ट्रिंग को नीचे रखें डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1937 (Na

  1. - MySQL में डुप्लिकेट आईडी के लिए अधिकतम राशि दिखाएं

    GROUP BY और MAX() से डुप्लिकेट आईडी की उच्चतम राशि प्राप्त करें डुप्लिकेट ग्राहक आईडी के लिए अधिकतम राशि पाने के लिए MAX() के साथ GROUP BY का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2003 ( CustomerId int, Amount int ); Query OK, 0 rows affected (0.65 sec) mysql> inse