Chuyển đến nội dung chính

HÀM SQL COUNT()

COUNT() cho phép bạn đếm số hàng khớp với các điều kiện nhất định. Học cách sử dụng trong hướng dẫn này.
Đã cập nhật 5 thg 6, 2026  · 3 phút đọc

Không cần phải nói, việc đếm số hàng hoặc giá trị là một phần quan trọng của phân tích dữ liệu. Vì thế, không có gì ngạc nhiên khi SQL có sẵn một hàm để hỗ trợ. Dù bạn đang xác định bản ghi trùng lặp, tính tổng theo nhóm hay lọc dữ liệu, hàm COUNT() đều có thể giúp bạn.

Trong bài viết này, tôi sẽ trình bày nhiều cách sử dụng hữu ích của COUNT(), từ cú pháp cơ bản đến các tình huống thú vị hơn với GROUP BYHAVING. Bạn cũng có thể cân nhắc đăng ký Chứng chỉ SQL Associate của chúng tôi — một cách tuyệt vời để vừa học vừa làm đẹp sơ yếu lý lịch của bạn. 

Hàm COUNT() trong SQL là gì?

Hàm COUNT() trả về số hàng khớp với một tiêu chí.

Cú pháp SQL COUNT()

Cú pháp cơ bản của COUNT() như sau.

SELECT COUNT(column_name)
FROM table_name;

Các biến thể của cú pháp giúp đạt những mục tiêu khác nhau.

  • Cú pháp COUNT(*) cho phép chúng ta đếm số hàng trong một bảng

  • Cú pháp COUNT(DISTINCT column) cho phép chúng ta đếm số giá trị duy nhất trong một cột 

  • Cú pháp COUNT(CASE WHEN condition THEN column END) cho phép chúng ta đếm số giá trị thỏa điều kiện.

COUNT(), khi dùng với GROUP BY, hữu ích để đếm số hàng thuộc về mỗi nhóm.

COUNT(), khi dùng với HAVING, hữu ích để lọc các nhóm theo số lượng hàng mà chúng có.

Chúng tôi sẽ minh họa điều này bằng các ví dụ dưới đây.

Ví dụ về hàm SQL COUNT()

Chạy và chỉnh sửa mã từ hướng dẫn trực tuyến này.

Chạy mã

Đếm số hàng với COUNT(*)

Bảng có tên products chứa tất cả sản phẩm mà một công ty bán. Mệnh đề COUNT(*) cho phép chúng ta tính số hàng trong bảng. 

SELECT
    COUNT(*) AS number_of_rows
FROM products

number_of_rows

321

Đếm giá trị duy nhất với COUNT(DISTINCT …)

Cú pháp COUNT(DISTINCT column) cho phép chúng ta đếm số giá trị duy nhất trong một cột.

Ví dụ, mỗi sản phẩm có một thương hiệu đi kèm trong bảng products. Chúng ta có thể đếm số sản phẩm và thương hiệu duy nhất trong bảng.

SELECT
    COUNT(DISTINCT product_id) AS unique_product_count,
    COUNT(DISTINCT brand_id) AS unique_brand_count
FROM products

unique_product_count

unique_brand_count

321

9

Đếm số hàng khớp điều kiện bằng COUNT() với CASE WHEN 

Cú pháp COUNT(CASE WHEN condition THEN column END) cho phép chúng ta tính số hàng khớp với một điều kiện.

Ví dụ, trong bảng products, mỗi sản phẩm có một list_price. Chúng ta có thể tính có bao nhiêu sản phẩm được xem là “expensive” (có giá niêm yết từ 500 đô la trở lên) hoặc ngược lại.

SELECT
    COUNT(CASE WHEN list_price >= 500 THEN product_id END) AS expensive_product_count,
   COUNT(CASE WHEN list_price < 500 THEN product_id END) AS cheap_product_count
FROM products

expensive_product_count

cheap_product_count

213

108

Đếm số hàng theo nhóm bằng COUNT() với GROUP BY

COUNT() có thể dùng với GROUP BY để tìm số hàng trong mỗi nhóm.

Ví dụ, bảng sản phẩm chứa các mẫu xe đạp từ 2016 đến 2019. Để tìm phân bố của xe đạp, chúng ta có thể dùng COUNT(product_id)GROUP BY model_year để đếm số sản phẩm của mỗi năm. 

SELECT
    model_year,
    COUNT(product_id) AS product_count
FROM products
GROUP BY model_year

model_year

product_count

2016

26

2017

85

2018

204

2019

6

Lọc các nhóm bằng COUNT() với GROUP BY và HAVING

Ở ví dụ 4, chúng ta thấy COUNT() có thể dùng với GROUP BY. Ta có thể dùng mệnh đề HAVING để lọc các nhóm dựa trên số hàng trong nhóm đó.

Ví dụ, để tìm các năm có ít hơn 50 sản phẩm, ta có thể dùng cú pháp sau. 

SELECT
   model_year
FROM products
GROUP BY model_year
HAVING COUNT(product_id) < 50

year_with_less_than_50_pdt

2016

2019

Yêu cầu kỹ thuật

COUNT() là một hàm có sẵn trong mọi phiên bản SQL hiện đại. DataCamp cung cấp các khóa học phù hợp để giúp bạn làm chủ SQL trong bối cảnh hệ quản trị cơ sở dữ liệu mà bạn chọn. Dưới đây là một vài lựa chọn để bắt đầu. Tôi cho rằng Oracle sẽ khác biệt nhất vì có một số hàm và tính năng bổ sung riêng. 

Tìm hiểu thêm về SQL

Tiếp tục học SQL cùng DataCamp. Tôi đã viết một vài hướng dẫn khác để bạn bắt đầu. Hy vọng bạn thấy hữu ích.

Bạn cũng có thể cân nhắc Chứng chỉ SQL Associate của chúng tôi, theo tôi là rất nổi bật trên CV hoặc sơ yếu lý lịch của bạn.


Travis Tang 's photo
Author
Travis Tang
LinkedIn

Là một nhà khoa học dữ liệu tại Tiktok và học viên cao học tại GeorgiaTech, tôi có niềm đam mê bẩm sinh với khoa học dữ liệu và đã tạo dựng một con đường sự nghiệp độc đáo, đan xen giữa công nghệ, rủi ro và cải thiện bản thân không ngừng. Trong thời gian làm Nhà khoa học dữ liệu tại Merchant Platform, tôi đã giảm thiểu rủi ro và chống gian lận bằng các mô hình dữ liệu phức tạp, giúp tiết kiệm hàng nghìn đô la mỗi tuần. Tôi mài giũa chuyên môn của mình bằng vô số giờ tự học, nhận chứng chỉ từ các tổ chức uy tín và thành thạo các chủ đề như Học sâu, TensorFlow và Phân tích mạng xã hội. Trên DataCamp và các nền tảng giáo dục khác, tôi tận dụng kho tri thức này để truyền cảm hứng và giáo dục mọi người, mở ra những lối đi mới trong lĩnh vực khoa học dữ liệu và chứng minh rằng với quyết tâm và dữ liệu phù hợp, mọi rủi ro đều có thể biến thành cơ hội.

Câu hỏi thường gặp về SQL COUNT()

COUNT() có thể chỉ đếm các hàng cụ thể không?

Có, bạn có thể dùng mệnh đề WHERE với COUNT() để chỉ đếm các hàng đáp ứng tiêu chí cụ thể. Ví dụ:

SELECT COUNT(*) FROM employees WHERE department = 'Sales';

Sự khác nhau giữa COUNT(*) và COUNT(column_name) là gì?

COUNT(*) đếm tất cả các hàng trong một bảng, bao gồm cả các hàng có giá trị NULL. COUNT(column_name) chỉ đếm các hàng mà cột được chỉ định không phải NULL.

Tôi có thể đếm các giá trị phân biệt bằng COUNT() không?

Có, bạn có thể đếm các giá trị duy nhất trong một cột bằng cách kết hợp COUNT() với từ khóa DISTINCT:

SELECT COUNT(DISTINCT department) FROM employees;

COUNT() xử lý các hàng trùng lặp như thế nào?

Mặc định, COUNT(*) đếm tất cả các hàng, bao gồm cả bản ghi trùng lặp. Để chỉ đếm các hàng duy nhất, hãy dùng COUNT(DISTINCT column_name).

Chủ đề

Khóa học SQL phổ biến

Courses

Phân tích Khám phá Dữ liệu bằng SQL

4 giờ
180K
Học cách khám phá các thành phần có sẵn trong một cơ sở dữ liệu: các bảng, mối quan hệ giữa chúng và dữ liệu được lưu trữ trong đó.
Xem chi tiếtRight Arrow
Bắt đầu khóa học
Xem thêmRight Arrow