> For the complete documentation index, see [llms.txt](https://learnsql.gitbook.io/lernmysql/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learnsql.gitbook.io/lernmysql/welcome-to-the-mysql-tutorial/ham-count.md).

# Hàm COUNT

**SQL có sẵn lệnh để đếm các dòng trong CSDL.**

**Cú pháp của hàm `COUNT`:**

> `SELECT COUNT(tên_cột) FROM tên_bảng`

**Hàm `COUNT`(\*):**

Hàm `COUNT`(\*) trả về số lượng các dòng được chọn ở trong bảng.

Ví dụ ta có bảng **Persons** như sau:

| Name            | Age |
| --------------- | --- |
| Hansen, Ola     | 34  |
| Svendson, Tove  | 45  |
| Pettersen, Kari | 19  |

Câu lệnh sau sẽ trả về số lượng các dòng trong bảng:

> `SELECT COUNT(*) FROM Persons`

và kết quả trả về sẽ là:

> `3`

Câu lệnh sau sẽ trả về số lượng những người lớn hơn 20 tuổi:

> `SELECT COUNT(*) FROM Persons WHERE Age > 20`

kết quả trả về sẽ là:

> `2`

**Hàm `COUNT`(column):**

Hàm `COUNT`(column) sẽ trả về số lượng các dòng có giá trị khác `NULL` ở cột được chỉ định.

Ví dụ ta có bảng **Persons** như sau:

| Name            | Age |
| --------------- | --- |
| Hansen, Ola     | 34  |
| Svendson, Tove  | 45  |
| Pettersen, Kari |     |

Câu lệnh sau sẽ trả về số lượng những người mà cột **Age** trong bảng không rỗng:

> `SELECT COUNT(Age) FROM Persons`

và kết quả trả về sẽ là:

> `2`

**Mệnh đề `COUNT DISTINCT`**

Lưu ý: Các ví dụ dưới đây chỉ hoạt động với CSDL **Oracle** và **MS SQL Server**, không hoạt động trên **MS Access** (chưa thử nhiệm với các hệ CSDL khác!)

Từ khoá DISTINCT và COUNT có thể được dùng chung với nhau để đếm số lượng các kết quả không trùng nhau.

Cú pháp như sau:

> `SELECT COUNT(DISTINCT column(s)) FROM table`

Ví dụ ta có bảng **Orders** như sau:

| Company   | OrderNumber |
| --------- | ----------- |
| Sega      | 3412        |
| W3Schools | 2312        |
| Trio      | 4678        |
| W3Schools | 6798        |

Câu lệnh SQL sau:

> `SELECT COUNT(DISTINCT Company) FROM Orders`

sẽ trả về kết quả là:

> `3`
