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

Truy vấn MySQL đếm bản ghi distinct từ cột có dữ liệu trùng lặp

Để đếm số lượng giá trị duy nhất (distinct) từ một cột chứa dữ liệu trùng lặp, MySQL cung cấp hàm COUNT(DISTINCT column_name).

Ví dụ minh họa

Tạo bảng sinh viên:

mysql> create table DemoTable ( 
    StudentId int, 
    StudentFirstName varchar(100) 
);

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

mysql> insert into DemoTable values(100,'John');
mysql> insert into DemoTable values(101,'Chris');
mysql> insert into DemoTable values(102,'John');
mysql> insert into DemoTable values(103,'Sam');
mysql> insert into DemoTable values(104,'Sam');

Hiển thị dữ liệu:

mysql> select * from DemoTable;

Kết quả:

+-----------+------------------+
| StudentId | StudentFirstName |
+-----------+------------------+
| 100       | John             |
| 101       | Chris            |
| 102       | John             |
| 103       | Sam              |
| 104       | Sam              |
+-----------+------------------+

Truy vấn đếm distinct

mysql> select count(distinct StudentFirstName) from DemoTable;

Kết quả:

+----------------------------------+
| count(distinct StudentFirstName) |
+----------------------------------+
| 3                                |
+----------------------------------+

Giải thích: Mặc dù có 5 bản ghi, nhưng chỉ có 3 tên duy nhất: John, Chris, Sam. Hàm COUNT(DISTINCT ...) tự động loại bỏ các giá trị trùng lặp trước khi đếm. Đây là cách hiệu quả nhất để thống kê số lượng giá trị duy nhất mà không cần dùng subquery hay nhóm dữ liệu.