Làm cách nào để đếm NULL trong MySQL?

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

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
1 để trả về số hàng trong một bảng

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

Hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
1 là một hàm tổng hợp trả về số hàng trong một bảng. Hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
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ể

Hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
1 có ba dạ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];

Code language: SQL [Structured Query Language] [sql]
7 và

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
8

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

Hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
6 trả về số hàng trong tập kết quả được trả về bởi câu lệnh
SELECT COUNT[state] 
FROM suppliers;

Result: 1
51.

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
6 trả về số hàng bao gồm các hàng trùng lặp, không phải NULL và
SELECT COUNT[state] 
FROM suppliers;

Result: 1
53

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];

Code language: SQL [Structured Query Language] [sql]
7 trả về số hàng không chứa giá trị
SELECT COUNT[state] 
FROM suppliers;

Result: 1
53 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];

Code language: SQL [Structured Query Language] [sql]
8 trả về số hàng riêng biệt không chứa giá trị
SELECT COUNT[state] 
FROM suppliers;

Result: 1
53 là kết quả của biểu thức

Kiểu trả về của hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
1 là
SELECT COUNT[*] AS "Number of employees"
FROM employees
WHERE salary > 75000;
51. Hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
1  trả về 0 nếu không tìm thấy hàng phù hợp

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

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

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]

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: 1
5

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

Câu lệnh sau sử dụng hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
6 để trả về tất cả các hàng từ bảng
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

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 mệnh đề
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

Nếu bạn chỉ định cột

SELECT COUNT[DISTINCT department] AS "Unique departments"
FROM employees
WHERE salary > 55000;
92 trong hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
1, thì hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
1 sẽ chỉ tính các hàng có giá trị không phải NULL trong cột  
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: 1
53 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

Ví dụ này sử dụng

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
8 để đếm các giá trị khác NULL và khác biệt trong cột
SELECT COUNT[DISTINCT department] AS "Unique departments"
FROM employees
WHERE salary > 55000;
92

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
2

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

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

Hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
6 thường được sử dụng với mệnh đề
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

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
1 với mệnh đề
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

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
1

Tương tự, ví dụ này sử dụng hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
6 để tìm số lượng sản phẩm được cung cấp bởi mỗi nhà cung cấp.

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
3

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

Để tìm nhà cung cấp cung cấp ít nhất 9 sản phẩm, bạn sử dụng hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
6 trong mệnh đề

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
24 như trong truy vấn sau

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
8

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

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. ,

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
26,

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
27 và

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
28 trong hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
1 để đếm các hàng có giá trị khớp với một điều kiện

Xem bảng

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
10 sau đây từ cơ sở dữ liệu mẫu

Truy vấn sau đây sử dụng hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
1 với hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
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ảng

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
10

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
0

Hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
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ề
SELECT COUNT[state] 
FROM suppliers;

Result: 1
53

Hàm

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
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 ứng

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

INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];

Code language: SQL [Structured Query Language] [sql]
16

Làm cách nào để tìm số giá trị NULL trong MySQL?

Để tìm giá trị NULL, bạn phải sử dụng phép kiểm IS NULL. Các câu lệnh sau đây cho biết cách tìm số điện thoại NULL và số điện thoại trống. mysql> CHỌN * TỪ my_table WHERE điện thoại LÀ NULL ; . 3.

Số đếm [*] trong SQL có tính NULL không?

Ký hiệu COUNT[*] bao gồm các giá trị NULL trong tổng số . Ký hiệu COUNT[tên_cột] chỉ xem xét các hàng trong đó cột chứa giá trị không phải NULL. Bạn cũng có thể kết hợp COUNT với toán tử DISTINCT để loại bỏ các giá trị trùng lặp trước khi đếm và để đếm các tổ hợp giá trị trên nhiều cột.

NULL có được tính là 0 trong SQL không?

Trong SQL Server, giá trị NULL cho biết giá trị không khả dụng hoặc chưa được gán. Giá trị NULL không bằng 0 [0] , cũng không bằng khoảng trắng [' ']. Vì giá trị NULL không thể bằng hoặc không bằng với bất kỳ giá trị nào nên bạn không thể thực hiện bất kỳ phép so sánh nào trên giá trị này bằng cách sử dụng các toán tử như '=' hoặc ''.

Chủ Đề