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

MySQL में GROUP BY द्वारा लौटाई गई पंक्तियों की संख्या के अनुसार GROUP BY कैसे करें?


आप इसके लिए GROUP_CONCAT() का उपयोग कर सकते हैं। उपरोक्त अवधारणा समझने के लिए, आइए एक टेबल बनाते हैं।

टेबल बनाने का क्वेरी इस प्रकार है:

mysql> create table groupByDemo    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> Name varchar(100)    -> ); Query OK, 0 rows affected (1.31 sec)

Insert कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें।

क्वेरी इस प्रकार है:

mysql> insert into groupByDemo(Name) values('John'); Query OK, 1 row affected (0.19 sec) mysql> insert into groupByDemo(Name) values('Carol'); Query OK, 1 row affected (0.14 sec) mysql> insert into groupByDemo(Name) values('Carol'); Query OK, 1 row affected (0.10 sec) mysql> insert into groupByDemo(Name) values('Bob'); Query OK, 1 row affected (0.24 sec) mysql> insert into groupByDemo(Name) values('Bob'); Query OK, 1 row affected (0.23 sec) mysql> insert into groupByDemo(Name) values('Bob'); Query OK, 1 row affected (0.17 sec) mysql> insert into groupByDemo(Name) values('John'); Query OK, 1 row affected (0.16 sec) mysql> insert into groupByDemo(Name) values('John'); Query OK, 1 row affected (0.07 sec) mysql> insert into groupByDemo(Name) values('John'); Query OK, 1 row affected (0.11 sec) mysql> insert into groupByDemo(Name) values('Sam'); Query OK, 1 row affected (0.17 sec) mysql> insert into groupByDemo(Name) values('Carol'); Query OK, 1 row affected (0.19 sec)

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

क्वेरी इस प्रकार है:

mysql> select *from groupByDemo;

निम्नलिखित आउटपुट है:

+----+-------+ | Id | Name  | +----+-------+ | 1  | John  | | 2  | Carol | | 3  | Carol | | 4  | Bob | | 5  | Bob | | 6  | Bob | | 7  | John | | 8  | John | | 9  | John | | 10 | Sam   | | 11 | Carol | +----+-------+ 11 rows in set (0.00 sec)

पंक्तियों की संख्या के अनुसार GROUP BY करने का क्वेरी यहाँ है:

mysql> SELECT Counter, GROUP_CONCAT(Name SEPARATOR ', ') as AllName    -> FROM (SELECT Name, COUNT(Name) as Counter       -> FROM groupByDemo       -> GROUP BY Name) tbl    -> GROUP BY Counter    -> ORDER BY Counter DESC;

निम्नलिखित आउटपुट है:

+---------+------------+ | Counter | AllName | +---------+------------+ | 4 | John | | 3 | Carol, Bob | | 1 | Sam | +---------+------------+ 3 rows in set (0.00 sec)

  1. - MySQL में ORDER BY DESC LIMIT से अंतिम 30 पंक्तियां प्राप्त करें

    MySQL में अंतिम N पंक्तियां प्राप्त करने के लिए ORDER BY ... DESC LIMIT N का उपयोग करें, फिर आवश्यकतानुसार पुनः क्रमबद्ध करें। सिंटैक्स SELECT * FROM टेबल_नाम ORDER BY कॉलम_नाम DESC LIMIT 30; उदाहरण: अंतिम 30 पंक्तियां (ID अवरोही क्रम) 1. टेबल बनाएं (ऑटो-इन्क्रीमेंट ID) ); 2. 37 पंक्तियां डालें

  1. - MySQL में चयनित पंक्तियों का आकार (आकार) कैसे प्राप्त करें?

    MySQL में CHAR_LENGTH() फ़ंक्शन का उपयोग करके स्ट्रिंग कॉलम की लंबाई (वर्णों में) प्राप्त की जा सकती है, और SUM() के साथ चयनित पंक्तियों का कुल आकार निकाला जा सकता है। सिंटैक्स SELECT SUM(CHAR_LENGTH(column_name)) FROM table_name WHERE condition; उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREA

  1. - MySQL में AND और OR ऑपरेटर का अंतर पंक्तियाँ प्राप्त करते समय

    अंतर AND: दोनों शर्तें TRUE होनी चाहिए। OR: कम से कम एक शर्त TRUE होनी चाहिए। उदाहरण टेबल insert into demo70(name,age) values(John,23), (David,21), (Mike,22), (Chris,20), (John,24), (David,22); OR क्वेरी: name=John OR age=22 select * from demo70 where name=John or age=22; +----+-------+------