परिचय
MySQL में GROUP_CONCAT(), COUNT() और GROUP BY का उपयोग करके डुप्लिकेट मानों वाले समूहों की जानकारी एक ही पंक्ति में प्राप्त की जा सकती है।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> CompanyId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> CompanyName VARCHAR(20)
-> );
Query OK, 0 rows affected (0.62 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Amazon');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Google');
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Google');
Query OK, 1 row affected (0.07 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Microsoft');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Amazon');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Amazon');
Query OK, 1 row affected (0.07 sec)
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-----------+-------------+
| CompanyId | CompanyName |
+-----------+-------------+
| 1 | Amazon |
| 2 | Google |
| 3 | Google |
| 4 | Microsoft |
| 5 | Amazon |
| 6 | Amazon |
+-----------+-------------+
6 rows in set (0.00 sec)
डुप्लिकेट गिनती और ID सूची प्राप्त करने की क्वेरी
mysql> SELECT CompanyName,
-> GROUP_CONCAT(CompanyId),
-> COUNT(CompanyId) AS count
-> FROM DemoTable
-> GROUP BY CompanyName
-> HAVING count > 1;
परिणाम
+-------------+-------------------------+-------+
| CompanyName | GROUP_CONCAT(CompanyId) | count |
+-------------+-------------------------+-------+
| Amazon | 1,5,6 | 3 |
| Google | 2,3 | 2 |
+-------------+-------------------------+-------+
2 rows in set (0.00 sec)
व्याख्या
GROUP BY CompanyName- समान कंपनी नाम वाली पंक्तियों को समूहित करता हैGROUP_CONCAT(CompanyId)- प्रत्येक समूह के ID को कॉमा से अलग करके जोड़ता हैCOUNT(CompanyId)- प्रत्येक समूह में पंक्तियों की गिनती करता हैHAVING count > 1- केवल डुप्लिकेट वाले समूह दिखाता है (गिनती > 1)
उपयोगी विकल्प
GROUP_CONCAT(CompanyId ORDER BY CompanyId)- क्रमबद्ध ID सूचीGROUP_CONCAT(CompanyId SEPARATOR ';')- कस्टम सेपरेटरGROUP_CONCAT(DISTINCT CompanyId)- केवल अद्वितीय ID
यह तकनीक डुप्लिकेट विश्लेषण और रिपोर्टिंग के लिए बहुत उपयोगी है।