Không phải ai cũng nhận ra điều này, nhưng hàm COUNT sẽ chỉ bao gồm các bản ghi trong số đếm mà giá trị của biểu thức trong COUNT[biểu thức] là NOT NULL. Khi biểu thức chứa giá trị NULL, nó không được bao gồm trong phép tính COUNT
Hãy xem một ví dụ về hàm COUNT minh họa cách các giá trị NULL được đánh giá bởi hàm COUNT
Ví dụ: nếu bạn có bảng sau đây được gọi là nhà cung cấp
nhà cung cấp_id nhà cung cấp_tên trạng thái 1 IBM CA2 Microsoft 3 NVIDIA
Và nếu bạn chạy câu lệnh SELECT sau sử dụng hàm COUNT
SELECT COUNT[supplier_id] FROM suppliers; Result: 3
Ví dụ COUNT này sẽ trả về 3 vì tất cả các giá trị supply_id trong tập hợp kết quả của truy vấn đều KHÔNG NULL
Tuy nhiên, nếu bạn chạy câu lệnh SELECT tiếp theo sử dụng hàm COUNT
SELECT COUNT[state] FROM suppliers; Result: 1
Ví dụ COUNT này sẽ chỉ trả về 1, vì chỉ có một giá trị trạng thái trong tập kết quả của truy vấn là NOT NULL. Đó sẽ là hàng đầu tiên có trạng thái = 'CA'. Đây là hàng duy nhất được bao gồm trong phép tính hàm COUNT
Áp dụng đối với
Hàm COUNT có thể được sử dụng trong các phiên bản MySQL sau
- mysql 5. 7, MySQL5. 6, MySQL5. 5, MySQL5. 1, MySQL5. 0, MySQL4. 1, MySQL4. 0, Mysql 3. 23
Ví dụ - Với biểu thức đơn
Hãy xem một số ví dụ về hàm COUNT trong MySQL và khám phá cách sử dụng hàm COUNT trong MySQL
Ví dụ, bạn có thể muốn biết có bao nhiêu nhân viên có mức lương trên $75,000/năm
SELECT COUNT[*] AS "Number of employees" FROM employees WHERE salary > 75000;
Trong ví dụ về hàm COUNT này, chúng tôi đã đặt bí danh cho biểu thức COUNT[*] là "Số lượng nhân viên". Do đó, "Số lượng nhân viên" sẽ hiển thị dưới dạng tên trường khi tập kết quả được trả về
Ví dụ - Sử dụng DISTINCT
Bạn có thể sử dụng mệnh đề DISTINCT trong hàm COUNT. Ví dụ: câu lệnh SQL bên dưới trả về số phòng ban duy nhất có ít nhất một nhân viên kiếm được hơn 55.000 đô la/năm
SELECT COUNT[DISTINCT department] AS "Unique departments" FROM employees WHERE salary > 55000;
Một lần nữa, trường COUNT[Bộ phận DISTINCT] có bí danh là "Các bộ phận duy nhất". Đây là tên trường sẽ hiển thị trong tập hợp kết quả
Ví dụ - Sử dụng GROUP BY
Trong một số trường hợp, bạn sẽ được yêu cầu sử dụng mệnh đề GROUP BY với hàm COUNT
Ví dụ: bạn cũng có thể sử dụng hàm COUNT để trả về tên của bộ phận và số lượng nhân viên [trong bộ phận được liên kết] ở trạng thái 'CA'
SELECT department, COUNT[*] AS "Number of employees" FROM employees WHERE state = 'CA' GROUP BY department;
Bởi vì bạn đã liệt kê một cột trong câu lệnh SELECT không được đóng gói trong hàm COUNT, nên bạn phải sử dụng mệnh đề GROUP BY. Do đó, trường bộ phận phải được liệt kê trong phần NHÓM THEO
Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng hàm MySQL
1 để trả về số hàng trong một bảngCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Giới thiệu về hàm MySQL INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
1
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Hàm
1 là một hàm tổng hợp trả về số hàng trong một bảng. HàmCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
1 cho phép bạn đếm tất cả các hàng hoặc chỉ những hàng phù hợp với một điều kiện cụ thể
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
Hàm
1 có ba dạng.Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
6,Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
7 vàCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
8Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
chức năng INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
6
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Hàm
6 trả về số hàng trong tập kết quả được trả về bởi câu lệnhCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[state] FROM suppliers; Result: 151.
6 trả về số hàng bao gồm các hàng trùng lặp, không phải NULL vàCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[state] FROM suppliers; Result: 153
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
7
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
7 trả về số hàng không chứa giá trịCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[state] FROM suppliers; Result: 153 là kết quả của biểu thức
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
8
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
8 trả về số hàng riêng biệt không chứa giá trịCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[state] FROM suppliers; Result: 153 là kết quả của biểu thức
Kiểu trả về của hàm
1 làCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[*] AS "Number of employees" FROM employees WHERE salary > 75000;51. Hàm
1 trả về 0 nếu không tìm thấy hàng phù hợpCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Minh họa hàm MySQL INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
1
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Thiết lập một bảng mẫu
Đầu tiên, tạo một bảng tên là
SELECT COUNT[*] AS "Number of employees" FROM employees WHERE salary > 75000;54
SELECT COUNT[*] AS "Number of employees" FROM employees WHERE salary > 75000;9
Thứ hai, chèn một số hàng vào bảng
SELECT COUNT[*] AS "Number of employees" FROM employees WHERE salary > 75000;54
Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Thứ ba, truy vấn dữ liệu từ bảng
SELECT COUNT[*] AS "Number of employees" FROM employees WHERE salary > 75000;54
SELECT COUNT[state] FROM suppliers; Result: 15
Ví dụ về MySQL INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
6
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Câu lệnh sau sử dụng hàm
6 để trả về tất cả các hàng từ bảngCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[*] AS "Number of employees" FROM employees WHERE salary > 75000;54
SELECT COUNT[*] AS "Number of employees" FROM employees WHERE salary > 75000;5
Ví dụ này sử dụng hàm
6 với mệnh đềCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[DISTINCT department] AS "Unique departments" FROM employees WHERE salary > 55000;91 để chỉ định điều kiện chỉ đếm những hàng có giá trị trong cột
SELECT COUNT[DISTINCT department] AS "Unique departments" FROM employees WHERE salary > 55000;92 là 2.
SELECT COUNT[DISTINCT department] AS "Unique departments" FROM employees WHERE salary > 55000;9
Ví dụ MySQL INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
7
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Nếu bạn chỉ định cột
SELECT COUNT[DISTINCT department] AS "Unique departments" FROM employees WHERE salary > 55000;92 trong hàm
1, thì hàmCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
1 sẽ chỉ tính các hàng có giá trị không phải NULL trong cộtCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[DISTINCT department] AS "Unique departments" FROM employees WHERE salary > 55000;92
SELECT department, COUNT[*] AS "Number of employees" FROM employees WHERE state = 'CA' GROUP BY department;7
Lưu ý rằng hai giá trị
SELECT COUNT[state] FROM suppliers; Result: 153 không được bao gồm trong kết quả.
Ví dụ về MySQL INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
8
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Ví dụ này sử dụng
8 để đếm các giá trị khác NULL và khác biệt trong cộtCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[DISTINCT department] AS "Unique departments" FROM employees WHERE salary > 55000;92
2Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Ví dụ thực tế về hàm MySQL INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
1
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Chúng tôi sẽ sử dụng bảng
SELECT department, COUNT[*] AS "Number of employees" FROM employees WHERE state = 'CA' GROUP BY department;73 từ cơ sở dữ liệu mẫu cho các ví dụ tiếp theo
A] Sử dụng hàm MySQL INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
6 với ví dụ về SELECT department, COUNT[*] AS "Number of employees"
FROM employees
WHERE state = 'CA'
GROUP BY department;
75
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Hàm
6 thường được sử dụng với mệnh đềCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT department, COUNT[*] AS "Number of employees" FROM employees WHERE state = 'CA' GROUP BY department;77 để trả về số phần tử trong mỗi nhóm
Ví dụ: câu lệnh này sử dụng hàm
1 với mệnh đềCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT department, COUNT[*] AS "Number of employees" FROM employees WHERE state = 'CA' GROUP BY department;75 để trả về số lượng sản phẩm trong mỗi dòng sản phẩm
1Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Tương tự, ví dụ này sử dụng hàm
6 để tìm số lượng sản phẩm được cung cấp bởi mỗi nhà cung cấp.Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
3Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
B] Sử dụng MySQL INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
6 với ví dụ về mệnh đề INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
22
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Để tìm nhà cung cấp cung cấp ít nhất 9 sản phẩm, bạn sử dụng hàm
6 trong mệnh đềCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
24 như trong truy vấn sauCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
8Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
C] Ví dụ về MySQL INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
25
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Bạn có thể sử dụng một biểu thức luồng điều khiển và các hàm e. g. ,
26,Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
27 vàCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
28 trong hàmCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
1 để đếm các hàng có giá trị khớp với một điều kiệnCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Xem bảng
10 sau đây từ cơ sở dữ liệu mẫuCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Truy vấn sau đây sử dụng hàm
1 với hàmCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
12 để tìm số lượng đơn đặt hàng bị hủy, bị tạm dừng và bị tranh chấp từ bảngCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
10Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
0Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Hàm
14 trả về 1 nếu trạng thái của đơn đặt hàng bị hủy, tạm dừng hoặc có tranh chấp, nếu không, nó trả vềCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[state] FROM suppliers; Result: 153
Hàm
16 chỉ đếm 1, không tính giá trị NULL nên truy vấn trả về số lượng đơn hàng dựa trên trạng thái tương ứngCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Trong hướng dẫn này, bạn đã học được nhiều kỹ thuật khác nhau để đếm số hàng trong một bảng bằng cách sử dụng hàm MySQL
16Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];