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

MySQL में डुप्लिकेट मानों के आधार पर दूसरे कॉलम का योग कैसे करें?

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 के बाद)

उपयोग केस: बिक्री रिपोर्ट, ग्राहक योग, श्रेणी-वार योग, समय-श्रृंखला एकत्रीकरण।

  1. - MySQL में GROUP BY और MIN() से डुप्लिकेट कॉलम मान वाले समूह का न्यूनतम मान प्राप्त करें

    किसी कॉलम (जैसे Class) के डुप्लिकेट मान वाले समूहों में से दूसरे कॉलम (जैसे Amount) का न्यूनतम मान प्राप्त करने के लिए GROUP BY और MIN() एग्रीगेट फ़ंक्शन का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1875 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Class VARCHAR(20), Amoun

  1. - MySQL में MIN() और GROUP BY से डुप्लिकेट कॉलम वाले समूह की पहली टाइमस्टैम्प तिथि प्राप्त करें

    किसी कॉलम (जैसे Value) के डुप्लिकेट मान वाले समूहों में से सबसे पहली (न्यूनतम) टाइमस्टैम्प प्राप्त करने के लिए MIN() एग्रीगेट फ़ंक्शन के साथ GROUP BY का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1870 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Value INT, ShippingTimestamp

  1. - MySQL में डुप्लिकेट आईडी के लिए फ्लोटिंग कॉलम का न्यूनतम मान प्राप्त करें

    GROUP BY और MIN() से डुप्लिकेट आईडी समूह की न्यूनतम कीमत पाएं डुप्लिकेट आईडी वाले समूहों में फ्लोटिंग-पॉइंट कॉलम का न्यूनतम मान प्राप्त करने के लिए MIN() के साथ GROUP BY का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2005 ( Id int, Price float ); Query OK, 0 rows affected (