MySQL में दो कॉलम पर GROUP BY करके प्रत्येक समूह की गिनती प्राप्त करें।
सिंटैक्स
SELECT column1, column2, COUNT(*) FROM yourTableName GROUP BY column1, column2 ORDER BY column1 DESC;
उदाहरण
टेबल बनाना
mysql> create table GroupByTwoFieldsDemo ( -> Id int, -> Name varchar(200) -> ); Query OK, 0 rows affected (0.53 sec)
डुप्लिकेट रिकॉर्ड डालना
mysql> insert into GroupByTwoFieldsDemo values(1,'John'); mysql> insert into GroupByTwoFieldsDemo values(10,'Johnson'); mysql> insert into GroupByTwoFieldsDemo values(9,'Carol'); mysql> insert into GroupByTwoFieldsDemo values(6,'Sam'); mysql> insert into GroupByTwoFieldsDemo values(5,'David'); mysql> insert into GroupByTwoFieldsDemo values(10,'Johnson'); -- डुप्लिकेट mysql> insert into GroupByTwoFieldsDemo values(6,'Sam'); -- डुप्लिकेट
सभी रिकॉर्ड देखना
mysql> select *from GroupByTwoFieldsDemo;
+------+---------+ | Id | Name | +------+---------+ | 1 | John | | 10 | Johnson | | 9 | Carol | | 6 | Sam | | 5 | David | | 10 | Johnson | | 6 | Sam | +------+---------+
दो कॉलम पर GROUP BY और COUNT
mysql> select Id, Name, count(Id) from GroupByTwoFieldsDemo group by id desc, Name;
+------+---------+-----------+ | Id | Name | count(Id) | +------+---------+-----------+ | 10 | Johnson | 2 | | 9 | Carol | 1 | | 6 | Sam | 2 | | 5 | David | 1 | | 1 | John | 1 | +------+---------+-----------+
व्याख्या
GROUP BY id, Name— Id और Name दोनों के संयोजन पर ग्रुप बनाता हैCOUNT(Id)— प्रत्येक ग्रुप में पंक्तियों की गिनतीORDER BY id DESC— परिणाम को अवरोही क्रम में सॉर्ट करता है- चेतावनी: MySQL 5.7+ में
ONLY_FULL_GROUP_BYमोड डिफ़ॉल्ट सक्षम है
ONLY_FULL_GROUP_BY मोड में सही क्वेरी
SELECT Id, Name, COUNT(*) as cnt FROM GroupByTwoFieldsDemo GROUP BY Id, Name ORDER BY Id DESC;
अन्य उपयोगी वेरिएशन
-- केवल डुप्लिकेट ढूंढना (count > 1) SELECT Id, Name, COUNT(*) as cnt FROM GroupByTwoFieldsDemo GROUP BY Id, Name HAVING COUNT(*) > 1; -- कुल अद्वितीय संयोजन SELECT COUNT(DISTINCT CONCAT(Id, '|', Name)) FROM GroupByTwoFieldsDemo;