MySQL में GROUP BY और HAVING COUNT(*) > 1 का उपयोग करके उन मानों को खोजें जो टेबल में एक से अधिक बार आते हैं (डुप्लिकेट)।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> Value INT
-> );
Query OK, 0 rows affected (0.82 sec)
mysql> INSERT INTO DemoTable VALUES(10), (100), (20), (10), (30), (40), (20);
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+-------+ | Value | +-------+ | 10 | | 100 | | 20 | | 10 | | 30 | | 40 | | 20 | +-------+ 7 rows in set (0.00 sec)
यहां: 10 दो बार, 20 दो बार, 100/30/40 एक-एक बार।
एक से अधिक बार आने वाले मान खोजना
mysql> SELECT * FROM DemoTable GROUP BY Value HAVING COUNT(*) > 1;
आउटपुट
+-------+ | Value | +-------+ | 10 | | 20 | +-------+ 2 rows in set (0.00 sec)
व्याख्या:
GROUP BY Value- समान मान वाली पंक्तियों को समूहित करता हैCOUNT(*)- प्रत्येक समूह में पंक्तियों की गिनती करता हैHAVING COUNT(*) > 1- केवल उन समूहों को रखता है जिनकी गिनती 1 से अधिक है
गिनती भी देखने के लिए:
SELECT Value, COUNT(*) AS Frequency FROM DemoTable GROUP BY Value HAVING COUNT(*) > 1 ORDER BY Frequency DESC;
सभी डुप्लिकेट पंक्तियाँ देखने के लिए (समूह नहीं):
SELECT * FROM DemoTable
WHERE Value IN (
SELECT Value FROM DemoTable
GROUP BY Value
HAVING COUNT(*) > 1
);