Saturday, July 21, 2012

Hàm COUNT lệnh đếm trong SQL (SQL p11)

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

No comments: