किसी कॉलम में डुप्लिकेट मान (एक से अधिक बार आने वाले) खोजने के लिए GROUP BY और HAVING COUNT(*) > 1 का उपयोग करें।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1858 (ModelNumber VARCHAR(50));
डेटा डालें
mysql> INSERT INTO DemoTable1858 VALUES('Audi A4'), ('Audi A6'), ('Audi A4'), ('Audi Q5'), ('Audi R8'), ('Audi Q5');
डुप्लिकेट खोजें
mysql> SELECT ModelNumber FROM DemoTable1858
GROUP BY ModelNumber
HAVING COUNT(ModelNumber) >= 2;
आउटपुट:
+-------------+ | ModelNumber | +-------------+ | Audi A4 | | Audi Q5 | +-------------+
व्याख्या
GROUP BY ModelNumber→ प्रत्येक अद्वितीय मॉडल के लिए एक समूह।COUNT(ModelNumber)→ प्रत्येक समूह में पंक्तियाँ गिनता है।HAVING COUNT(...) >= 2→ केवल 2 या अधिक वाली पंक्तियाँ रखता है।
डुप्लिकेट पंक्तियाँ (पूरी पंक्ति) देखें
SELECT * FROM DemoTable1858
WHERE ModelNumber IN (
SELECT ModelNumber FROM DemoTable1858
GROUP BY ModelNumber HAVING COUNT(*) > 1
);
डुप्लिकेट गणना सहित
SELECT ModelNumber, COUNT(*) AS Count FROM DemoTable1858 GROUP BY ModelNumber HAVING COUNT(*) > 1;
प्रदर्शन टिप
ModelNumberपर इंडेक्स बनाएं:CREATE INDEX idx_model ON DemoTable1858(ModelNumber)।- बड़ी टेबल पर
HAVINGके बजाय विंडो फ़ंक्शन (MySQL 8.0+) उपयोग करें।