MySQL nơi đếm lớn hơn

Hàm count() trong MySQL được sử dụng để trả về số đếm của một biểu thức. Nó cho phép chúng ta đếm tất cả các hàng hoặc chỉ một số hàng của bảng thỏa mãn một điều kiện cụ thể. Nó là một loại hàm tổng hợp có kiểu trả về là BIGINT. Hàm này trả về 0 nếu không tìm thấy bất kỳ hàng nào phù hợp

Chúng ta có thể sử dụng hàm đếm ở ba dạng, được giải thích bên dưới

  • Đếm (*)
  • Đếm (biểu thức)
  • Đếm (riêng biệt)

Hãy để chúng tôi thảo luận chi tiết từng

Hàm COUNT(*). Hàm này sử dụng câu lệnh SELECT để trả về số hàng trong tập kết quả. Tập kết quả chứa tất cả các hàng Non-Null, Null và trùng lặp

Hàm COUNT(biểu thức). Hàm này trả về tập kết quả không chứa các hàng Null là kết quả của một biểu thức

Hàm COUNT(biểu thức riêng biệt). Hàm này trả về số lượng hàng riêng biệt không chứa giá trị NULL là kết quả của biểu thức

cú pháp

Sau đây là cú pháp của hàm COUNT()

giải thích tham số

tổng hợp_biểu thức. Nó chỉ định cột hoặc biểu thức có giá trị KHÔNG NULL sẽ được tính

tên_bảng. Nó chỉ định các bảng từ nơi bạn muốn truy xuất bản ghi. Phải có ít nhất một bảng được liệt kê trong mệnh đề TỪ

điều kiện NƠI. nó là tùy chọn. Nó chỉ định các điều kiện phải được đáp ứng để các bản ghi được chọn

Ví dụ về hàm đếm () của MySQL

Hãy xem xét một bảng có tên "nhân viên" có chứa dữ liệu sau

MySQL nơi đếm lớn hơn

Hãy cho chúng tôi hiểu cách các hàm count() hoạt động trong MySQL

Ví dụ 1

Thực hiện truy vấn sau sử dụng hàm COUNT(biểu thức) để tính tổng số tên nhân viên có sẵn trong bảng

đầu ra

MySQL nơi đếm lớn hơn

Ví dụ2

Thực hiện câu lệnh sau trả về tất cả các hàng từ bảng nhân viên và mệnh đề WHERE chỉ định các hàng có giá trị trong cột emp_age lớn hơn 32

đầu ra

MySQL nơi đếm lớn hơn

Ví dụ3

Câu lệnh này sử dụng hàm COUNT(biểu thức riêng biệt) để đếm các hàng khác biệt và khác nhau trong cột emp_age

đầu ra

MySQL nơi đếm lớn hơn

Hàm Count() của MySQL với mệnh đề GROUP BY

Chúng ta cũng có thể sử dụng hàm count() với mệnh đề GROUP BY trả về số phần tử trong mỗi nhóm. Ví dụ, câu lệnh sau trả về số lượng nhân viên ở mỗi thành phố

Sau khi thực hiện thành công ta sẽ được kết quả như bên dưới

MySQL nơi đếm lớn hơn

Hàm Count() trong MySQL với mệnh đề HAVING và ORDER BY

Chúng ta hãy xem một mệnh đề khác sử dụng mệnh đề ORDER BY và Have với hàm đếm(). Thực hiện câu lệnh sau cung cấp tên nhân viên có ít nhất hai tuổi giống nhau và sắp xếp chúng dựa trên kết quả đếm

Thí dụ

Trả về số lượng sản phẩm trong bảng "Sản phẩm"

CHỌN COUNT(ProductID) AS NumberOfProducts TỪ Sản phẩm;

Tự mình thử »


Định nghĩa và cách sử dụng

Hàm COUNT() trả về số lượng bản ghi được trả về bởi một truy vấn chọn

Ghi chú. Giá trị NULL không được tính

cú pháp

Giá trị tham số

Tham sốMô tảBiểu thứcBắt buộc. Một trường hoặc một giá trị chuỗi

chi tiết kỹ thuật

Để hiểu nhóm theo mệnh đề where, chúng ta hãy tạo một bảng. Truy vấn để tạo một bảng như sau -

mysql> create table GroupByWithWhereClause
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> IsDeleted tinyint(1),
   -> MoneyStatus varchar(20),
   -> UserId int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.57 sec)

Bây giờ bạn có thể chèn một số bản ghi vào bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'Undone',101);
Query OK, 1 row affected (0.17 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'done',101);
Query OK, 1 row affected (0.19 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'done',101);
Query OK, 1 row affected (0.14 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'done',102);
Query OK, 1 row affected (0.18 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(1,'Undone',102);
Query OK, 1 row affected (0.20 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(1,'done',102);
Query OK, 1 row affected (0.59 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'Undone',103);
Query OK, 1 row affected (0.15 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'done',103);
Query OK, 1 row affected (0.20 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'done',103);
Query OK, 1 row affected (0.18 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'done',103);
Query OK, 1 row affected (0.10 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'done',104);
Query OK, 1 row affected (0.14 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'Undone',104);
Query OK, 1 row affected (0.12 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(1,'Undone',105);
Query OK, 1 row affected (0.15 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(1,'done',105);
Query OK, 1 row affected (0.26 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(1,'done',105);
Query OK, 1 row affected (0.12 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'done',105);
Query OK, 1 row affected (0.24 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'Undone',106);
Query OK, 1 row affected (0.23 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'done',106);
Query OK, 1 row affected (0.16 sec)
mysql> insert into GroupByWithWhereClause(IsDeleted,MoneyStatus,UserId) values(0,'done',106);
Query OK, 1 row affected (0.14 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh chọn

Truy vấn như sau -

mysql> select *from GroupByWithWhereClause;

Sau đây là đầu ra -

+----+-----------+-------------+--------+
| Id | IsDeleted | MoneyStatus | UserId |
+----+-----------+-------------+--------+
|  1 |         0 | Undone      |    101 |
|  2 |         0 | done        |    101 |
|  3 |         0 | done        |    101 |
|  4 |         0 | done        |    102 |
|  5 |         1 | Undone      |    102 |
|  6 |         1 | done        |    102 |
|  7 |         0 | Undone      |    103 |
|  8 |         0 | done        |    103 |
|  9 |         0 | done        |    103 |
| 10 |         0 | done        |    103 |
| 11 |         0 | done        |    104 |
| 12 |         0 | Undone      |    104 |
| 13 |         1 | Undone      |    105 |
| 14 |         1 | done        |    105 |
| 15 |         1 | done        |    105 |
| 16 |         0 | done        |    105 |
| 17 |         0 | Undone      |    106 |
| 18 |         0 | done        |    106 |
| 19 |         0 | done        |    106 |
+----+-----------+-------------+--------+
19 rows in set (0.00 sec)

Đây là truy vấn để GROUP BY với mệnh đề WHERE -

mysql> SELECT * FROM GroupByWithWhereClause
   -> WHERE IsDeleted= 0 AND MoneyStatus= 'done'
   -> GROUP BY SUBSTR(UserId,1,3)
   -> HAVING COUNT(*) > 1
   -> ORDER BY Id DESC;

Sau đây là đầu ra -

+----+-----------+-------------+--------+
| Id | IsDeleted | MoneyStatus | UserId |
+----+-----------+-------------+--------+
| 18 |         0 | done        |    106 |
|  8 |         0 | done        |    103 |
|  2 |         0 | done        |    101 |
+----+-----------+-------------+--------+
3 rows in set (0.00 sec)

Bạn có thể sử dụng số đếm trong mệnh đề WHERE SQL không?

SQL SELECT COUNT() có thể được kết hợp với mệnh đề SQL WHERE . Sử dụng mệnh đề WHERE, chúng ta có quyền hạn chế dữ liệu được cung cấp cho hàm COUNT() và câu lệnh SELECT thông qua một điều kiện.

Chúng ta có thể sử dụng mệnh đề WHERE với GROUP BY trong MySQL không?

Mệnh đề GROUP BY được sử dụng với câu lệnh SELECT. GROUP BY tổng hợp kết quả trên cơ sở cột đã chọn. ĐẾM, TỐI ĐA, TỐI THIỂU, TỔNG, AVG, v.v. GROUP BY chỉ trả về một kết quả cho mỗi nhóm dữ liệu. Mệnh đề GROUP BY luôn theo sau Mệnh đề WHERE .

Số đếm (*) trong MySQL là gì?

Hàm COUNT() trả về số lượng bản ghi được trả về bởi một truy vấn chọn

Làm cách nào để thêm điều kiện vào SQL đếm?

COUNT() với HAVING . Mệnh đề HAVING được sử dụng thay cho mệnh đề WHERE với hàm SQL COUNT()