Hàm COUNT_BIG() đếm tổng số item của một nhóm trong sql
Hàm COUNT_BIG() dùng để đếm tổng số item trong một nhóm. Hàm COUNT_BIG() cũng tương tự như hàm COUNT(). Điểm khác biệt duy nhất giữa 2 hàm này là giá trị trả về: Hàm COUNT_BIG() trả về kiểu dữ liệu bigint , trong khi đó hàm COUNT() trả về kiểu dữ liệu int . Cú pháp: COUNT_BIG ( { [ ALL ...
Hàm COUNT_BIG() dùng để đếm tổng số item trong một nhóm. Hàm COUNT_BIG() cũng tương tự như hàm COUNT(). Điểm khác biệt duy nhất giữa 2 hàm này là giá trị trả về: Hàm COUNT_BIG() trả về kiểu dữ liệu bigint, trong khi đó hàm COUNT() trả về kiểu dữ liệu int.
Cú pháp:
COUNT_BIG ( { [ ALL | DISTINCT ] expression} | * )
Trong đó:
- ALL: đếm tất cả item có giá trị khác null. ALL được mặc định
- DISTINCT: đếm trên những item có giá trị duy nhất, những item có giá trị lặp lại được tính là 1.
- Expression: biểu thức làm điều kiện đếm, sử dụng trên tất cả các kiểu dữ liệu, ngoại trừ uniqueidentifier, text, image, hoặc ntext. Những hàm tính gọp (aggregate functions) và truy vấn lồng (subqueries) không được hỗ trợ.
- *: đếm tất cả các row trong bảng (bao gồm dữ liệu null và lặp lại). Hàm COUNT_BIG(*) không cần bất cứ đối số (parameter) nào và cũng không thể sử dụng DISTINCT. Hàm COUNT_BIG(*) không yêu cầu biểu thức expression
Giả sử bạn có bảng IS_SickBenefit lưu % các loại bảo hiểm để nhận bảo hiểm khi bạn ốm đau.
Bảng IS_SickBenefit gồm 3 cột sau:
– Index: kiểu int, khóa chính
– Type: kiểu nvarchar, lưu loại bảo hiểm được hưởng trợ cấp ốm đau
– PercentBenefit: kiểu double lưu phần trăm được hưởng trợ cấp ốm đau
Giả sử, ta có bảng dữ liệu như sau:
Index | Type | PercentBenefit |
1 | Bảng thân ốm ngắn ngày | 75 |
2 | Ốm dài ngày | 75 |
3 | Dưỡng sức | 25 |
4 | Con ốm | 75 |
5 | Ốm bình thường | null |
Bây giờ chúng ta sẽ tính đếm số item của bảng dữ liệu trên, ta sử dụng cả ALL, DISTINCT và *
-- Câu 1: SELECT COUNT_BIG(PercentBenefit) AS Total FROM IS_SickBenefit -- =>Kết quả: 4 --Câu 2: SELECT COUNT_BIG(DISTINCT PercentBenefit) AS Total FROM IS_SickBenefit -- =>Kết quả: 2 -- Câu 3: SELECT COUNT_BIG(*) AS Total FROM IS_SickBenefit -- =>Kết quả: 5
Giải thích:
– Câu 1: đếm tất cả các item, ngoại trừ item có dữ liệu null
– Câu 2: cột PercentBenefit có 3 giá trị 75, vì dùng DISTINCT nên được tính là 1, và một giá trị 25. Nên kết quả 2 = 1 (của 75) + 1 (của 25)
– Câu 3: đếm tất cả các row của bảng IS_SickBenefit
Chúc các bạn thành công!