MySQL đếm các hàng có giá trị cụ thể

Có một số cách để lấy số lượng hàng trong MySQL. Một số sản phẩm quản lý cơ sở dữ liệu cung cấp số liệu thống kê cơ sở dữ liệu như kích thước bảng, nhưng nó cũng có thể được thực hiện bằng SQL thẳng. Trong mẹo hôm nay, chúng ta sẽ sử dụng hàm gốc COUNT() để truy xuất số hàng trong một bảng hoặc dạng xem trong cơ sở dữ liệu MySQL. Trong phần 2, chúng ta sẽ tìm hiểu cách lấy số lượng hàng từ nhiều bảng hoặc thậm chí từ tất cả các bảng trong cơ sở dữ liệu

Có thể bạn đã biết hàm COUNT() trả về số hàng trong bảng. Nhưng còn nhiều điều hơn thế nữa, vì hàm COUNT() có thể được sử dụng để đếm tất cả các hàng trong một bảng hoặc chỉ những hàng khớp với một điều kiện cụ thể. Bí mật nằm ở chữ ký hàm, trong đó có một số dạng. COUNT(*), COUNT(biểu thức) và COUNT(biểu thức DISTINCT)

Trong mỗi trường hợp, hàm COUNT() trả về BIGINT chứa số lượng hàng phù hợp hoặc bằng 0 nếu không tìm thấy

Để đếm tất cả các hàng trong một bảng, cho dù chúng có chứa giá trị NULL hay không, hãy sử dụng COUNT(*). Dạng đó của hàm COUNT() về cơ bản trả về số hàng trong tập kết quả được trả về bởi câu lệnh SELECT

CHỌN ĐẾM (*) TỪ các thành phố;

Một câu lệnh giống như câu lệnh ở trên gọi hàm COUNT(*) mà không có mệnh đề WHERE hoặc các cột bổ sung, sẽ thực hiện rất nhanh trên các bảng MyISAM vì số lượng hàng được lưu trữ trong cột table_rows trong bảng bảng của cơ sở dữ liệu lược đồ thông tin

Đối với các công cụ lưu trữ giao dịch như InnoDB, việc lưu trữ số lượng hàng chính xác là một vấn đề vì InnoDB không giữ số lượng hàng nội bộ trong một bảng. Nếu đúng như vậy, các giao dịch đồng thời có thể “thấy” số lượng hàng khác nhau cùng một lúc. Do đó, các câu lệnh SELECT COUNT(*) chỉ đếm các hàng hiển thị cho giao dịch hiện tại. Điều đó có nghĩa là việc chạy truy vấn bằng COUNT(*) trong khi khối lượng công việc lớn có thể dẫn đến các con số hơi không chính xác

Không chuyển gì cho COUNT() thực thi phiên bản COUNT(expr) của hàm, nhưng sans tham số. Gọi COUNT() theo cách đó chỉ trả về các hàng không bao gồm các giá trị NULL. Ví dụ: giả sử rằng chúng tôi có một bảng đơn giản có tên code_values

code_values
+-------+
. mã số.
+-------+
. 1.
+-------+
.        .
+-------+
.        .
+-------+
. 4.
+-------+

Chọn COUNT() từ bảng sẽ trả về 2, mặc dù có 4 hàng

CHỌN COUNT(*) TỪ code_values;

+---------+
. ĐẾM().
+---------+
. 2.
+---------+

Lưu ý rằng phiên bản này của hàm COUNT() hiếm khi được sử dụng vì các hàng NULL không phải là vấn đề trong cơ sở dữ liệu chuẩn hóa, một điều kiện chỉ có thể xảy ra nếu bảng không có khóa chính. Trong hầu hết các trường hợp, COUNT(*) sẽ hoạt động bình thường

Tất nhiên, COUNT(expr) chấp nhận các biểu thức thích hợp. Đây là một truy vấn khác tìm nạp các hàng NULL và không NULL giống nhau

CHỌN ĐẾM (IFNULL (mã, 1)) TỪ code_values;

Đếm các giá trị khác null

Phiên bản COUNT(expr) của hàm COUNT cũng chấp nhận các tên cột riêng lẻ, kết quả là COUNT(tên_cột) sẽ trả về số lượng bản ghi trong đó tên_cột không phải là NULL. Do đó, truy vấn CHỌN sau sẽ tìm nạp số lượng hàng trong đó cột mô tả chứa giá trị không NULL

CHỌN ĐẾM (mô tả) TỪ các vật dụng;

Trong Phần 2, chúng ta sẽ tìm hiểu cách sử dụng chữ ký COUNT(DISTINCT expression) cũng như cách lấy số lượng hàng từ nhiều bảng

Hàm MySQL

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
1 cho phép bạn đếm số lần một giá trị nhất định xuất hiện trong cơ sở dữ liệu MySQL của bạn

Hàm này cũng có thể giúp bạn đếm xem bạn có bao nhiêu hàng trong bảng MySQL của mình

Hàm có một tham số

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
2 nơi bạn có thể chỉ định điều kiện của truy vấn

Cú pháp của hàm

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
1 như sau

SELECT COUNT(expression)

Ví dụ: giả sử bạn có một bảng

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
4 liệt kê các thú cưng
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
5,
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
6 và
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
7 như sau

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+

Giả sử bạn muốn đếm xem bảng

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
4 có bao nhiêu hàng. Bạn có thể sử dụng ký hiệu dấu hoa thị
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
9 làm đối số cho hàm
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
1

Biểu tượng dấu hoa thị trong MySQL có nghĩa là chọn tất cả các cột trong bảng, vì vậy biểu thức

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
21 có nghĩa là tất cả các hàng sẽ được tính, ngay cả những hàng có giá trị
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
22 và trùng lặp

Truy vấn MySQL sau đây

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
2

Sẽ tạo ra tập kết quả sau

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
5

Nếu bạn chỉ muốn đếm các hàng có giá trị trường cụ thể, thì bạn có thể thêm mệnh đề

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
23 vào truy vấn

Ví dụ: giả sử bạn chỉ muốn đếm các hàng có giá trị

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
5 là
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
25. Bạn có thể sử dụng truy vấn sau

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
9

Tập kết quả sẽ như sau

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
0

Vì chúng tôi có ba thú cưng 4 tuổi nên truy vấn hoạt động như dự kiến. Nhưng kết quả có thể có nhiều thông tin hơn bằng cách trả về

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
6 của vật nuôi

Để trả về

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
6 của vật nuôi, bạn cần thêm cột
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
6 vào câu lệnh SELECT, sau đó nhóm truy vấn theo cột
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
6 bằng cách sử dụng mệnh đề
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
50

truy vấn sau

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
6

Sẽ tạo ra tập kết quả sau

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
7

Bây giờ bạn biết rằng có một con mèo, một con ngựa và một con chó bốn tuổi

Hàm

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
51 là một hàm tổng hợp, có nghĩa là bạn cần sử dụng mệnh đề
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
50 khi bạn cũng chọn các trường không tổng hợp (câu lệnh chọn cột bình thường)

Theo mặc định, chỉ một giá trị khác null được bao gồm trong tập kết quả

Trong truy vấn SQL sau đây, cột

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
5 có giá trị null bị loại trừ khỏi tập kết quả

SELECT COUNT(expression)
1

Trong khi thực tế có hai hàng của

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
54 loài, MySQL chỉ tính một hàng vì hàng
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
54 khác có giá trị
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
5 là
+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
57

Cuối cùng, bạn cũng có thể biết mỗi

+----+--------+---------+------+
| id | owner  | species | age  |
+----+--------+---------+------+
|  1 | Jessie | bird    |    2 |
|  2 | Jessie | dog     |    6 |
|  3 | Ann    | duck    |    3 |
|  4 | Ann    | duck    |    2 |
|  5 | Ann    | duck    |    3 |
|  6 | Gary   | cat     | NULL |
|  7 | Gary   | cat     |    4 |
|  8 | Joe    | horse   |    4 |
|  9 | Mark   | dog     |    4 |
| 10 | Peter  | dog     |    5 |
+----+--------+---------+------+
7 có bao nhiêu con vật trong bảng của mình bằng truy vấn sau

Làm cách nào để đếm giá trị cụ thể trong MySQL?

Giới thiệu về hàm MySQL COUNT() . Hàm COUNT() có ba dạng. COUNT(*) , COUNT(biểu thức) và COUNT(Biểu thức DISTINCT) .

Làm cách nào để đếm số hàng có cùng giá trị trong SQL?

Cách tìm các giá trị trùng lặp trong SQL .
Sử dụng mệnh đề GROUP BY để nhóm tất cả các hàng theo (các) cột đích – i. e. (các) cột bạn muốn kiểm tra các giá trị trùng lặp trên
Sử dụng hàm COUNT trong mệnh đề HAVING để kiểm tra xem có nhóm nào có nhiều hơn 1 mục không;