Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Truy vấn MySQL đếm số lượng giá trị trùng lặp trong cột bảng

Để đếm số lượng bản ghi trùng lặp cho mỗi giá trị trong một cột, bạn dùng GROUP BY kết hợp HAVING COUNT(*) > 1.

Ví dụ minh họa

Tạo bảng:

mysql> create table DemoTable( 
    Data int 
);

Chèn dữ liệu có trùng lặp:

mysql> insert into DemoTable values(60);
mysql> insert into DemoTable values(40);
mysql> insert into DemoTable values(50);
mysql> insert into DemoTable values(60);
mysql> insert into DemoTable values(40);
mysql> insert into DemoTable values(80);

Hiển thị dữ liệu:

mysql> select * from DemoTable;

Kết quả:

+------+
| Data |
+------+
| 60   |
| 40   |
| 50   |
| 60   |
| 40   |
| 80   |
+------+

Truy vấn đếm số lượng trùng lặp

mysql> select count(*) from DemoTable group by Data having count(Data) > 1;

Kết quả:

+----------+
| count(*) |
+----------+
| 2        |
| 2        |
+----------+

Giải thích:

  • GROUP BY Data: Nhóm các hàng theo giá trị Data
  • COUNT(*): Đếm số hàng trong mỗi nhóm
  • HAVING COUNT(Data) > 1: Chỉ giữ nhóm có số lượng > 1 (tức là trùng lặp)
  • Kết quả: 60 xuất hiện 2 lần, 40 xuất hiện 2 lần → 2 hàng kết quả đều có count = 2

Mở rộng: Nên dùng SELECT Data, COUNT(*) as cnt FROM DemoTable GROUP BY Data HAVING cnt > 1 để biết giá trị nào bị trùng và trùng bao nhiêu lần.