SELECT SUM[if[category=1,size,0]] ,COUNT[if[category=1,true,null]] FORM t_file;
解析:
1. sum(if[category=1,size,0]]中 sum函数返回一个值类型的数值,如果category=1,则返回size,如果category不等于1就返回0。
2. count[if[category=1,true,null]]中count函数返回一个布尔值类型的数值,如果category=1,返回true,如果category不等于1返回null,如果写成count[If[category=1,1,0] 则返回的全是true,也就是说全都会计数,而count[]间断内容是true还是null,如果不是null就计数,如果是null就不计数。
所以count[if[]]的写法应该是count[if[ 表达式 ,true,null]];
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 thông 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
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
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
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
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
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
Ví 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ỗichi tiết kỹ thuật
Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng hàm
1 của MySQL để 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ề chức năng 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ểCode language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
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];
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Code language: SQL [Structured Query Language] [sql]
6 chức năng
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];
1.Code language: SQL [Structured Query Language] [sql]
SELECT * FROM count_demos;
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];
3Code language: SQL [Structured Query Language] [sql]
SELECT * FROM count_demos;
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];
Hàm
7 trả về số lượng 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];
3 như kết quả của biểu thứcCode language: SQL [Structured Query Language] [sql]
SELECT * FROM count_demos;
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];
Hàm
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];
3 như kết quả của biểu thứcCode language: SQL [Structured Query Language] [sql]
SELECT * FROM count_demos;
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];
1. HàmCode language: SQL [Structured Query Language] [sql]
SELECT COUNT[*] FROM count_demos;
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 chức năng 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à
4Code language: SQL [Structured Query Language] [sql]
SELECT COUNT[*] FROM count_demos;
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE count_demos [ id INT AUTO_INCREMENT PRIMARY KEY, val INT ];
Thứ hai, chèn một số hàng vào bảng
4Code language: SQL [Structured Query Language] [sql]
SELECT COUNT[*] FROM count_demos;
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
4
SELECT COUNT[*] FROM count_demos;
Code language: SQL [Structured Query Language] [sql]
Code language: SQL [Structured Query Language] [sql]
SELECT * FROM count_demos;
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í dụ
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];
4Code language: SQL [Structured Query Language] [sql]
SELECT COUNT[*] FROM count_demos;
Code language: SQL [Structured Query Language] [sql]
SELECT COUNT[*] FROM count_demos;
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];
1 để chỉ định điều kiện chỉ đếm các hàng có giá trị trong cộtCode language: SQL [Structured Query Language] [sql]
SELECT COUNT[*] FROM count_demos WHERE val = 2;
2 là 2.Code language: SQL [Structured Query Language] [sql]
SELECT COUNT[*] FROM count_demos WHERE val = 2;
Code language: SQL [Structured Query Language] [sql]
SELECT COUNT[*] FROM count_demos WHERE val = 2;
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]
7
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Nếu bạn chỉ định cột
2 trong hàmCode language: SQL [Structured Query Language] [sql]
SELECT COUNT[*] FROM count_demos WHERE val = 2;
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ác 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];
2Code language: SQL [Structured Query Language] [sql]
SELECT COUNT[*] FROM count_demos WHERE val = 2;
Code language: SQL [Structured Query Language] [sql]
SELECT COUNT[val] FROM count_demos;
Lưu ý rằng hai giá trị
3 không được bao gồm trong kết quả.Code language: SQL [Structured Query Language] [sql]
SELECT * FROM count_demos;
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ụ
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];
2Code language: SQL [Structured Query Language] [sql]
SELECT COUNT[*] FROM count_demos WHERE val = 2;
Code language: SQL [Structured Query Language] [sql]
SELECT COUNT[DISTINCT val] FROM count_demos;
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
3 từ cơ sở dữ liệu mẫu cho các ví dụ tiếp theoCode language: SQL [Structured Query Language] [sql]
SELECT COUNT[val] FROM count_demos;
A] Sử dụng chức nă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ề SELECT COUNT[val]
FROM count_demos;
Code language: SQL [Structured Query Language] [sql]
5
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[val]
FROM count_demos;
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];
7 để trả về số phần tử trong mỗi nhómCode language: SQL [Structured Query Language] [sql]
SELECT COUNT[val] FROM count_demos;
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];
5 để trả về số lượng sản phẩm trong mỗi dòng sản phẩmCode language: SQL [Structured Query Language] [sql]
SELECT COUNT[val] FROM count_demos;
Code language: SQL [Structured Query Language] [sql]
SELECT productLine, COUNT[*] FROM products GROUP BY productLine;
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];
Code language: SQL [Structured Query Language] [sql]
SELECT productVendor, COUNT[*] FROM products GROUP BY productVendor ORDER BY COUNT[*] DESC;
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 đề SELECT COUNT[DISTINCT val]
FROM count_demos;
Code language: SQL [Structured Query Language] [sql]
2
INSERT INTO count_demos[val]
VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
SELECT COUNT[DISTINCT val]
FROM count_demos;
Để 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];
4 như được hiển thị trong truy vấn sauCode language: SQL [Structured Query Language] [sql]
SELECT COUNT[DISTINCT val] FROM count_demos;
Code language: SQL [Structured Query Language] [sql]
SELECT productVendor, COUNT[*] FROM products GROUP BY productVendor HAVING COUNT[*] >= 9 ORDER BY COUNT[*] DESC;
C] Ví dụ về MySQL SELECT COUNT[DISTINCT val]
FROM count_demos;
Code language: SQL [Structured Query Language] [sql]
5
SELECT COUNT[DISTINCT val]
FROM count_demos;
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. ,
6,Code language: SQL [Structured Query Language] [sql]
SELECT COUNT[DISTINCT val] FROM count_demos;
7 vàCode language: SQL [Structured Query Language] [sql]
SELECT COUNT[DISTINCT val] FROM count_demos;
8 trong hàmCode language: SQL [Structured Query Language] [sql]
SELECT COUNT[DISTINCT val] FROM count_demos;
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
0 sau đây từ cơ sở dữ liệu mẫuCode language: SQL [Structured Query Language] [sql]
SELECT productLine, COUNT[*] FROM products GROUP BY productLine;
Truy vấn sau đây sử dụng
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];
2 để 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]
SELECT productLine, COUNT[*] FROM products GROUP BY productLine;
0Code language: SQL [Structured Query Language] [sql]
SELECT productLine, COUNT[*] FROM products GROUP BY productLine;
0Code language: SQL [Structured Query Language] [sql]
INSERT INTO count_demos[val] VALUES[1],[1],[2],[2],[NULL],[3],[4],[NULL],[5];
Hàm
4 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]
SELECT productLine, COUNT[*] FROM products GROUP BY productLine;
3Code language: SQL [Structured Query Language] [sql]
SELECT * FROM count_demos;
Hàm
6 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]
SELECT productLine, COUNT[*] FROM products GROUP BY productLine;
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
6Code language: SQL [Structured Query Language] [sql]
SELECT productLine, COUNT[*] FROM products GROUP BY productLine;