Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में GROUP BY HAVING से डुप्लिकेट मान ढूंढें

MySQL में GROUP BY ... HAVING COUNT(*) > 1 का उपयोग करके उन मानों को ढूंढ सकते हैं जो टेबल में एक से अधिक बार आते हैं।

सिंटैक्स

SELECT कॉलम_नाम
FROM टेबल_नाम
GROUP BY कॉलम_नाम
HAVING COUNT(*) > 1;

उदाहरण

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable (
    -> Value INT
    -> );

2. डेटा डालें (कुछ डुप्लिकेट के साथ)

mysql> INSERT INTO DemoTable VALUES(20);
mysql> INSERT INTO DemoTable VALUES(10);
mysql> INSERT INTO DemoTable VALUES(30);
mysql> INSERT INTO DemoTable VALUES(10);  -- डुप्लिकेट
mysql> INSERT INTO DemoTable VALUES(30);  -- डुप्लिकेट
mysql> INSERT INTO DemoTable VALUES(40);
mysql> INSERT INTO DemoTable VALUES(50);

3. सभी रिकॉर्ड देखें

mysql> SELECT * FROM DemoTable;
+-------+
| Value |
+-------+
| 20    |
| 10    |
| 30    |
| 10    |
| 30    |
| 40    |
| 50    |
+-------+

4. डुप्लिकेट मान ढूंढें

mysql> SELECT * FROM DemoTable
    -> GROUP BY Value
    -> HAVING COUNT(*) > 1;

5. परिणाम

+-------+
| Value |
+-------+
| 10    |
| 30    |
+-------+

अतिरिक्त जानकारी प्राप्त करें

SELECT Value, COUNT(*) AS Occurrences
FROM DemoTable
GROUP BY Value
HAVING COUNT(*) > 1;
+-------+-------------+
| Value | Occurrences |
+-------+-------------+
| 10    | 2           |
| 30    | 2           |
+-------+-------------+

उपयोग के मामले

  • डेटा गुणवत्ता जांच
  • यूनिक कंस्ट्रेंट उल्लंघन ढूंढना
  • डुप्लिकेट रिकॉर्ड की पहचान
  1. - MySQL में GROUP BY और HAVING से isMarried=0 वाली पंक्तियां चुनें और ClientId द्वारा समूहित करें

    MySQL में किसी कॉलम का मान विशिष्ट मान (जैसे isMarried = 0) होने वाली पंक्तियों को चुनकर, दूसरे कॉलम (ClientId) द्वारा समूहित करने के लिए GROUP BY के साथ HAVING का उपयोग करें। ध्यान दें: यह पैटर्न MySQL के ONLY_FULL_GROUP_BY मोड पर निर्भर करता है। सिंटैक्स SELECT column1, column2, filter_column FRO

  1. - MySQL में DISTINCT ORDER BY DESC LIMIT OFFSET से Nth उच्चतम मान चुनें

    MySQL में DISTINCT, ORDER BY DESC, और LIMIT ... OFFSET का संयोजन उपयोग करके Nth उच्चतम विशिष्ट मान प्राप्त कर सकते हैं। सिंटैक्स SELECT DISTINCT कॉलम_नाम FROM टेबल_नाम ORDER BY कॉलम_नाम DESC LIMIT (N-1), 1; उदाहरण: 3rd उच्चतम अंक (N=3) 1. टेबल बनाएं CREATE TABLE DemoTable1594 (Marks INT); 2. डे

  1. - MySQL में WHERE IN के साथ NULL मान कैसे संभालें?

    सिंटैक्स select yourColumnName1, yourColumnName2 from yourTableName where yourValue in(yourColumnName1, yourColumnName2) or yourColumnName1 is NULL; उदाहरण insert into demo60(first_name,last_name) values(John,Smith), (John,Doe), (null,Brown), (David,Miller), (David,Smith), (Chris,Brown); क्वेरी