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

Lấy số lượng dòng duy nhất trong cột MySQL?

Sử dụng COUNT(DISTINCT column_name) để đếm số giá trị duy nhất (bỏ qua trùng lặp) trong một cột.

Tạo bảng

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> FirstName VARCHAR(10)
    -> );

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

mysql> INSERT INTO DemoTable(FirstName) VALUES('Larry');
mysql> INSERT INTO DemoTable(FirstName) VALUES('John');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Sam');
mysql> INSERT INTO DemoTable(FirstName) VALUES('John');
mysql> INSERT INTO DemoTable(FirstName) VALUES('John');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Larry');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Mike');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Robert');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Carol');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Mike');

Xem dữ liệu (10 hàng, 6 tên duy nhất)

mysql> SELECT * FROM DemoTable;
+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | Larry     |
| 2  | John      |
| 3  | Sam       |
| 4  | John      |
| 5  | John      |
| 6  | Larry     |
| 7  | Mike      |
| 8  | Robert    |
| 9  | Carol     |
| 10 | Mike      |
+----+-----------+

Đếm tên duy nhất

mysql> SELECT COUNT(DISTINCT FirstName) FROM DemoTable;
+---------------------------+
| COUNT(DISTINCT FirstName) |
+---------------------------+
| 6                         |
+---------------------------+

So sánh COUNT() vs COUNT(DISTINCT)

HàmKết quảÝ nghĩa
COUNT(FirstName)10Tổng số hàng (kể cả NULL? không, COUNT(cột) bỏ NULL)
COUNT(DISTINCT FirstName)6Số giá trị khác nhau: Larry, John, Sam, Mike, Robert, Carol
COUNT(*)10Tổng số hàng (kể cả NULL)

Mở rộng: Liệt kê các giá trị duy nhất và số lần xuất hiện

SELECT FirstName, COUNT(*) AS Frequency 
FROM DemoTable 
GROUP BY FirstName 
ORDER BY Frequency DESC;