কম্পিউটার টিউটোরিয়াল

MySQL-এ GROUP BY HAVING ব্যবহার করে ডুপ্লিকেট কলাম মান বের করা


টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> create table DemoTable1858 ( ModelNumber varchar(50) ); Query OK, 0 rows affected (0.00 sec)
mysql> insert into DemoTable1858 values('Audi A4'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1858 values('Audi A6'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1858 values('Audi A4'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1858 values('Audi Q5'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1858 values('Audi R8'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1858 values('Audi Q5'); Query OK, 1 row affected (0.00 sec)

সব রেকর্ড

mysql> select * from DemoTable1858;
+-------------+
| ModelNumber |
+-------------+
| Audi A4     |
| Audi A6     |
| Audi A4     |
| Audi Q5     |
| Audi R8     |
| Audi Q5     |
+-------------+
6 rows in set (0.00 sec)

ডুপ্লিকেট মান বের করা (কাউন্ট >= ২)

mysql> select ModelNumber from DemoTable1858 group by ModelNumber having count(ModelNumber) >= 2;
+-------------+
| ModelNumber |
+-------------+
| Audi A4     |
| Audi Q5     |
+-------------+
2 rows in set (0.00 sec)

ব্যাখ্যা: GROUP BY দিয়ে গ্রুপ করা হয়, HAVING count(*) >= 2 দিয়ে যে গ্রুপগুলো একাধিকবার আসেছে সেগুলো ফিল্টার করা হয়। COUNT(*) বা COUNT(ModelNumber) দুটোই কাজ করে (NULL না হলে)।

  1. MySQL-এ নির্দিষ্ট ভ্যালু প্রথমে দেখিয়ে বাকি অর্ডার করানো (ORDER BY ট্রিক)

  2. MySQL CONCAT()으로 여러 컬럼 값을 텍스트와 합쳐 단일 컬럼으로 출력하기

  3. MySQL에서 중복 튜플 찾기와 개수 세기 (GROUP BY HAVING)

  4. MySQL에서 IS NOT NULL로 NULL 제외하고 NOT NULL 값만 다른 테이블로 복사하기