CHỌN ĐẾM MySQL

COUNT là một hàm tổng hợp đơn giản nhưng rất hiệu quả và được sử dụng rộng rãi. Nói một cách rất đơn giản, nó được sử dụng để ĐẾM số lượng hàng đối với truy vấn và tiêu chí CHỌN đã cho

Hướng dẫn này sẽ giải thích cú pháp và cách sử dụng hàm COUNT đơn giản, COUNT với điều kiện, COUNT với DISTINCT, COUNT với GROUP BY, v.v.

=> Nhấp vào đây để xem toàn bộ loạt bài hướng dẫn về MySQL

Bạn sẽ học được gì

CHỌN ĐẾM MySQL

Nhiều loại MySQL COUNT

Hàm TypeDescriptionSyntaxCOUNT(*)COUNT(*) trả về giá trị không. trong số các hàng được câu lệnh SELECT truy xuất bao gồm các hàng chứa giá trị NULL và Giá trị trùng lặp SELECT COUNT(*) FROM {tableName}COUNT(Expression)COUNT(expression) sẽ đếm giá trị trong đó biểu thức không phải là null
Biểu thức có thể đơn giản như tên cột hoặc biểu thức phức tạp như Hàm IF. SELECT COUNT(Biểu thức) từ {tableName}COUNT(Biểu thức DISTINCT)COUNT(Biểu thức DISTINCT) - Từ khóa DISTINCT sẽ dẫn đến việc chỉ đếm các giá trị khác null duy nhất đối với biểu thức
Ví dụ - COUNT(DISTINCT customerName) - sẽ chỉ tính các hàng có giá trị riêng biệt cho tên khách hàngSELECT COUNT(DISTINCT expression) từ {tableName}

MySQL COUNT ví dụ

Dữ liệu thử nghiệm

Chúng tôi sẽ sử dụng các bảng và dữ liệu sau đây cho các ví dụ về hàm MySQL COUNT

Những cái bàn

#1) Sản_phẩm_Chi_tiết

Lưu trữ thông tin chi tiết của các sản phẩm khác nhau trong một cửa hàng

  • product_id – INT
  • tên_sản_phẩm – VARCHAR
  • giá – DECIMAL
  • category_id – INT (FOREIGN KEY – id từ bảng Category_Details)

#2) Danh mục_Chi tiết

  • Thể loại ID. INT
  • tên danh mục. VARCHAR

Hãy tạo các bảng và chèn dữ liệu giả bằng các truy vấn bên dưới

CREATE TABLE `product_details` (
  `product_id` int NOT NULL,
  `product_name` varchar(100),
  `price` decimal(5,2),
  `category_id` int,
  FOREIGN KEY (category_id) REFERENCES category_details(category_id),
  PRIMARY KEY(product_id)
)

CREATE TABLE `category_details` (
  `category_id` int NOT NULL,
  `category_name` varchar(100),
  PRIMARY KEY(category_id)
)

INSERT INTO `category_details` (`category_id`,`category_name`) VALUES 
(1,'FMCG'),(2,'FURNITURE'),(3,'FASHION'),(4,'APPLIANCES'),(5,'ELECTRONICS');

INSERT INTO `product_details`
 (`product_id`,`product_name`,`price`,`category_id`) VALUES
 (1,'Biscuits',0.5,1),(2,'Chocolates',1,1), (3, 'Washing Powder',5,1),(4,
 'Apple IPhone', 500,5), 
(5, 'Batteries',2,5),(6,'Floor cleaner',2.5,1),(7,'Jeans-
Levis',100,1),(8,'Mixer grinder',50,4),(9,'Capsicum',2,1),(10,'Sugar',1,1),(11,'Study Table',50,2);

Vui lòng tham khảo hình ảnh của các bảng với dữ liệu thử nghiệm như được tạo ở trên

Bảng chi tiết sản phẩm

CHỌN ĐẾM MySQL

Danh mục_Bảng chi tiết

CHỌN ĐẾM MySQL

ĐẾM đơn giản

Trong phần này, chúng ta sẽ tìm hiểu hàm COUNT một cách đơn giản nhất

Chúng tôi sẽ sử dụng COUNT để trả về số hàng mà không cần kiểm tra NULL hoặc DISTINCT

SELECT COUNT(*) FROM product_details;

đầu ra

ĐẾM(*)11

Với truy vấn trên, chúng ta sẽ chỉ nhận được số lượng hàng được trả về so với câu lệnh chọn

ĐẾM CÓ ĐIỀU KIỆN

Bây giờ chúng ta sẽ sử dụng hàm COUNT với điều kiện hoặc giá trị cột

Ví dụ. Giả sử chúng ta muốn đếm số không. của các hàng không có giá trị khác null cho tên sản phẩm

Chúng ta có thể thêm product_name (hoặc bất kỳ tên cột cụ thể nào) làm biểu thức trong hàm COUNT, sau đó sẽ dẫn đến một số hàng có các hàng product_name NON NULL

SELECT COUNT(product_name) FROM product_details;

Trong trường hợp này, đầu ra sẽ là 11 (vì tất cả dữ liệu thử nghiệm đã có giá trị cho cột product_name)

đầu ra

ĐẾM(tên_sản_phẩm)11

Hãy thêm một hàng mới, với giá trị NULL cho product_name

INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;

Truy vấn COUNT ở trên sẽ trả về số lượng tất cả các hàng có NON NULL product_name

Vì chúng tôi đã chèn một hàng có NULL product_name, điều đó sẽ không được trả về trong kết quả. Vì vậy, đầu ra sẽ vẫn là 11 hàng

đầu ra

ĐẾM(tên_sản_phẩm)11

ĐẾM Với DISTINCT

Trong các ví dụ trước, chúng ta đã sử dụng hàm COUNT với biểu thức. Chúng ta cũng có thể kết hợp biểu thức với lệnh DISTINCT để nhận tất cả các giá trị KHÔNG NULL, cũng là ĐỘC ĐÁO

Hãy thử lấy DISTINCT category_id từ bảng product_details

SELECT COUNT(DISTINCT category_id) from product_details;

đầu ra

COUNT(DISTINCT danh mục_id)4

Như bạn có thể thấy ở trên - đầu ra là 4, đại diện cho tổng số không. của category_id trong bảng product_details

ĐẾM VỚI NHÓM THEO

Hãy xem một ví dụ mà chúng tôi muốn sử dụng COUNT cùng với GROUP BY. Đây là một sự kết hợp quan trọng trong đó chúng tôi có thể nhận được COUNT đối với cột được nhóm và phân tích dữ liệu tùy thuộc vào các giá trị khác nhau của cột được nhóm mục tiêu

Ví dụ. tìm không. của các sản phẩm đối với từng danh mục từ bảng product_details

SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;

danh mục_idCOUNT(*)17214152

Như chúng ta có thể thấy ở trên, đối với mỗi danh mục_id, cột COUNT(*) đại diện cho số lượng hàng thuộc mỗi danh mục_id

ĐẾM Với NẾU

Hãy xem một ví dụ về cách sử dụng điều kiện IF bên trong hàm COUNT. Chúng ta có thể đặt một biểu thức IF bên trong hàm COUNT và đặt giá trị thành NULL cho điều kiện sai và mọi giá trị khác null cho điều kiện đúng

Mọi giá trị NON NULL sẽ được tính là một hàng w. r. chức năng đếm

Ví dụ. Sử dụng hàm COUNT để tìm tất cả các sản phẩm trong phạm vi giá 20$

SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;

đầu ra

đếm_less_than_207

Trong truy vấn trên, chúng tôi đã nhận được COUNT của tất cả các sản phẩm có phạm vi giá nằm trong khoảng từ 0 đến 20. Đối với điều kiện FALSE, chúng tôi đã đặt giá trị thành NULL, giá trị này không được tính khi hàng được ước tính cho các giá trị cột khác nhau

ĐẾM Với THAM GIA

COUNT cũng có thể được sử dụng với các câu lệnh THAM GIA. Vì COUNT áp dụng cho không. của các hàng, nó có thể được sử dụng với bất kỳ tổ hợp truy vấn nào hoạt động trên một bảng hoặc nhiều bảng bằng cách sử dụng THAM GIA

Ví dụ. Tham gia cả bảng product_details và category_details và tìm số đếm theo tên_danh mục từ bảng product_details

________số 8_______

đầu ra

category_nameCOUNT(category_name)FMCG7FURNITURE1APPLIANCES1ELECTRONICS2

Mẹo & Thủ thuật

Sử dụng bí danh Cột cho cột hiển thị kết quả của hàm COUNT. Chúng ta có thể sử dụng bí danh Cột cùng với hàm COUNT để đặt tên cột do người dùng xác định cho cột hiển thị kết quả của hàm COUNT

Ví dụ. Giả sử chúng ta muốn đếm số lượng danh mục trong bảng category_details và đặt tên cho cột kết quả là danh mục_count, chúng ta có thể sử dụng truy vấn bên dưới

SELECT COUNT(*) as category_count from category_details;

đầu ra

danh mục_count5

Các câu hỏi thường gặp

Q #1) Làm cách nào để sử dụng hàm COUNT trong MySQL?

Trả lời. Hàm COUNT là một hàm tổng hợp có thể được sử dụng theo 3 cách

  • ĐẾM(*) – Điều này sẽ ĐẾM tất cả các hàng được trả về bởi SELECT QUERY
  • COUNT(biểu thức) – Điều này sẽ COUNT tất cả các giá trị KHÔNG NULL cho biểu thức
  • COUNT (biểu thức DISTINCT) – Điều này sẽ COUNT tất cả các giá trị KHÔNG NULL và ĐỘC ĐÁO đối với biểu thức

Q #2) Sự khác biệt giữa Đếm (*) và Đếm (1) trong SQL là gì?

Trả lời. Cả hai tuyên bố hành xử theo một cách giống hệt nhau. Từ định nghĩa về COUNT của MySQL, mọi thứ trong ngoặc đơn () đều là một biểu thức - và mọi giá trị NON NULL sẽ được tính là 1

Vì vậy, trong trường hợp này, cả * và 1 đều được coi là KHÔNG NULL và trả về kết quả tương tự i. e. kết quả của cả hai truy vấn bên dưới sẽ giống nhau

SELECT COUNT(*) FROM product_details;
0

Phần kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu về hàm COUNT và các biến thể khác nhau do MySQL cung cấp

Chúng ta cũng đã thấy cách chúng ta có thể sử dụng COUNT với các tình huống khác nhau, chẳng hạn như kết hợp COUNT với GROUP BY và viết hàm IF bên trong hàm COUNT

Hàm COUNT là một trong những hàm quan trọng và được sử dụng rộng rãi nhất trong MySQL và phần lớn được sử dụng để tổng hợp dữ liệu tùy thuộc vào các điều kiện được chỉ định cho một hoặc nhiều bảng

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

COUNT(*). Hàm này sử dụng câu lệnh SELECT để trả về số lượng 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.

Làm cách nào để CHỌN số lượng bản ghi trong MySQL?

Để đế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.

Làm cách nào để sử dụng hàm đếm () trong MySQL?

Cách sử dụng hàm COUNT trong MySQL .
CHỌN * TỪ số_num;
CHỌN COUNT(*) TỪ số;
CHỌN COUNT(*) TỪ số. Ở ĐÂU val = 5;
CHỌN COUNT(val) TỪ các số;
CHỌN ĐẾM (giá trị DISTINCT) TỪ các số;

Làm cách nào để CHỌN giá trị cột đếm trong MySQL?

Để tìm số cột trong bảng MySQL, hãy sử dụng hàm đếm(*) với information_schema. cột và mệnh đề WHERE .