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

MySQL क्वेरी: कॉलम द्वारा समूहित करें और दूसरे कॉलम में समान मानों का योग प्रदर्शित करें

इसके लिए GROUP BY HAVING क्लॉज का उपयोग करें।

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

mysql> create table DemoTable782 ( Name varchar(100), Score int ); 
Query OK, 0 rows affected (1.18 sec)

इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:

mysql> insert into DemoTable782 values('John',156); 
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable782 values('Carol',250); 
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable782 values('Bob',140); 
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable782 values('John',126); 
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable782 values('John',140); 
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable782 values('Bob',280); 
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable782 values('Bob',250); 
Query OK, 1 row affected (0.41 sec)
mysql> insert into DemoTable782 values('Carol',189); 
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable782 values('Carol',299); 
Query OK, 1 row affected (0.21 sec)

सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:

mysql> select * from DemoTable782;

यह निम्नलिखित आउटपुट देगा:

+-------+-------+
| Name  | Score |
+-------+-------+
| John  | 156   |
| Carol | 250   |
| Bob   | 140   |
| John  | 126   |
| John  | 140   |
| Bob   | 280   |
| Bob   | 250   |
| Carol | 189   |
| Carol | 299   |
+-------+-------+
9 rows in set (0.00 sec)

कॉलम द्वारा समूहित करें और समान मानों का योग प्रदर्शित करने की क्वेरी (कुल > 500)

mysql> select Name, SUM(Score) AS Total from DemoTable782 group by Name HAVING Total > 500;

यह निम्नलिखित आउटपुट देगा:

+-------+-------+
| Name  | Total |
+-------+-------+
| Carol | 738   |
| Bob   | 670   |
+-------+-------+
2 rows in set (0.00 sec)

WHERE और HAVING में अंतर

  • WHERE पंक्तियों को समूहित करने से पहले फ़िल्टर करता है
  • HAVING समूहित परिणामों को फ़िल्टर करता है (एग्रीगेट फ़ंक्शन के बाद)
  • HAVING Total > 500 केवल उन समूहों को दिखाता है जिनका कुल स्कोर 500 से अधिक है
  • John का कुल 422 है (156+126+140), इसलिए वह परिणाम में नहीं आता
  1. - MySQL में पंक्तियों के मान जोड़कर परिणाम सॉर्ट करना

    GROUP BY और ORDER BY से समूहवार योग और क्रम SUM() और GROUP BY से प्रत्येक समूह का योग निकालें, फिर ORDER BY से परिणाम क्रमबद्ध करें। तालिका और डेटा (Chris, 45), (David, 98), (Bob, 58); क्वेरी: नामवार कुल अंक, अवरोही क्रम ORDER BY TotalSum DESC; परिणाम +-------------+----------+ | StudentName

  1. - MySQL में कॉलम मानों को अलग टेक्स्ट के साथ जोड़ें और एकल कॉलम में प्रदर्शित करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.93 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(101,Chris); Query OK, 1 row affected (0.25 sec) mysq

  1. - MySQL में GROUP_CONCAT और SUM का उपयोग करके कई पंक्तियों के स्ट्रिंग्स को संयोजित करें और ID का योग दिखाएं

    MySQL में GROUP_CONCAT और SUM के साथ पंक्तियों को एक पंक्ति में संयोजित करना MySQL का GROUP_CONCAT() फ़ंक्शन एक समूह के भीतर गैर-NULL मानों को एक स्ट्रिंग में जोड़ता है, और SUM() संख्यात्मक मानों को जोड़ता है। साथ में वे कई पंक्तियों को एक सारांश पंक्ति में संक्षिप्त करने की अनुमति देते हैं। टेबल ब