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

MySQL में GROUP BY HAVING से डुप्लिकेट कॉलम मान खोजें और प्रदर्शित करें

किसी कॉलम में डुप्लिकेट मान (एक से अधिक बार आने वाले) खोजने के लिए 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+) उपयोग करें।
  1. - MySQL में कॉलम मानों को अलग टेक्स्ट के साथ जोड़ें और एकल कॉलम में प्रदर्शित करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.93 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(101,Chris); Query OK, 1 row affected (0.25 sec) mysq

  1. - MySQL क्वेरी डुप्लिकेट टुपल्स खोजने और गिनती प्रदर्शित करने के लिए?

    डुप्लिकेट टुपल्स खोजने के लिए GROUP BY HAVING क्लॉज का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.80 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into De

  1. - MySQL में NULL और NOT NULL रिकॉर्ड वाले कॉलम से केवल NOT NULL मान प्रदर्शित करें

    इसके लिए आप IS NOT NULL प्रॉपर्टी का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1 ( DueDate date ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1 values(2019-09-10); Query OK, 1 r