GROUP BY और HAVING से डुप्लीकेट खोजें
MySQL में डुप्लीकेट रिकॉर्ड चुनने और उनकी संख्या गिनने के लिए GROUP BY के साथ HAVING और COUNT() फंक्शन का उपयोग करें।
टेबल और डेटा तैयार करें
mysql> CREATE TABLE duplicateRecords (
-> ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ClientName VARCHAR(20)
-> );
mysql> INSERT INTO duplicateRecords(ClientName) VALUES('John');
mysql> INSERT INTO duplicateRecords(ClientName) VALUES('Carol');
mysql> INSERT INTO duplicateRecords(ClientName) VALUES('John');
mysql> INSERT INTO duplicateRecords(ClientName) VALUES('Sam');
mysql> INSERT INTO duplicateRecords(ClientName) VALUES('Sam');
mysql> INSERT INTO duplicateRecords(ClientName) VALUES('Bob');
mysql> INSERT INTO duplicateRecords(ClientName) VALUES('John');
mysql> INSERT INTO duplicateRecords(ClientName) VALUES('Sam');
सभी रिकॉर्ड:
+----------+------------+ | ClientId | ClientName | +----------+------------+ | 1 | John | | 2 | Carol | | 3 | John | | 4 | Sam | | 5 | Sam | | 6 | Bob | | 7 | John | | 8 | Sam | +----------+------------+
डुप्लीकेट रिकॉर्ड और उनकी गिनती की क्वेरी
mysql> SELECT ClientName, COUNT(*) AS DuplicateRecord
-> FROM duplicateRecords
-> GROUP BY ClientName
-> HAVING DuplicateRecord > 1;
परिणाम:
+------------+-----------------+ | ClientName | DuplicateRecord | +------------+-----------------+ | John | 3 | | Sam | 3 | +------------+-----------------+
कैसे काम करता है:
GROUP BY ClientName- समान नामों को समूहित करता हैCOUNT(*)- प्रत्येक समूह की पंक्तियाँ गिनता हैHAVING DuplicateRecord > 1- केवल उन्हीं समूहों को दिखाता है जिनकी गिनती 1 से अधिक है
अतिरिक्त सुझाव: यदि पूरी पंक्ति डुप्लीकेट है (सभी कॉलम समान), तो GROUP BY में सभी कॉलम शामिल करें।