MySQL COUNT() और GROUP BY: डुप्लिकेट मानों की गिनती
किसी कॉलम में डुप्लिकेट मानों की गिनती करने और परिणाम को नए कॉलम में दिखाने के लिए COUNT() एग्रीगेट फंक्शन के साथ GROUP BY का उपयोग करें।
उदाहरण: ID की डुप्लिकेट गिनती
टेबल बनाएं:
CREATE TABLE DemoTable (
Id INT,
Name VARCHAR(100)
);
INSERT INTO DemoTable VALUES (50, 'Chris'), (51, 'David'), (51, 'Mike'), (50, 'Sam');
डेटा:
+------+-------+ | Id | Name | +------+-------+ | 50 | Chris | | 51 | David | | 51 | Mike | | 50 | Sam | +------+-------+
डुप्लिकेट गिनती क्वेरी
SELECT Id, COUNT(Name) AS Count FROM DemoTable GROUP BY Id;
परिणाम:
+------+-------+ | Id | Count | +------+-------+ | 50 | 2 | | 51 | 2 | +------+-------+
व्याख्या
GROUP BY Id— समान ID वाली पंक्तियों को एक समूह में जोड़ता हैCOUNT(Name)— प्रत्येक समूह में गैर-NULL नामों की गिनतीAS Count— परिणाम कॉलम को नाम देता है
केवल डुप्लिकेट दिखाने के लिए (गिनती > 1)
SELECT Id, COUNT(*) AS Count FROM DemoTable GROUP BY Id HAVING COUNT(*) > 1;
COUNT(*) vs COUNT(कॉलम)
COUNT(*)— सभी पंक्तियां गिनता है (NULL सहित)COUNT(कॉलम)— केवल गैर-NULL मान गिनता है- डुप्लिकेट गिनती के लिए आमतौर पर
COUNT(*)बेहतर
अधिक विवरण के साथ
SELECT
Id,
COUNT(*) AS TotalRows,
COUNT(DISTINCT Name) AS UniqueNames,
GROUP_CONCAT(Name) AS AllNames
FROM DemoTable
GROUP BY Id
HAVING COUNT(*) > 1;