Hàm COUNT trong SQL Server

COUNT trong SQL được dùng như thế nào? Nếu chưa biết câu trả lời, mời bạn cùng Quantrimang.com tìm hiểu cách dùng hàm COUNT trong SQL dưới đây.

SQL Server là một phần không thể thiếu trong thế giới lập trình. Nếu muốn phát triển trong ngành này, nhất định bạn nên học SQL Server. Về cơ bản, cách dùng SQL Server không khó, nó cũng bao gồm các hàm. Ở bài viết dưới đây, hãy cùng nhau tìm hiểu về hàm count trong SQL Server nhé!

Hàm COUNT() tron SQL Server là một phần của hàm tổng hợp được dùng cho mục đích tính tổng số hàng trong bảng. Khi kết quả không có hàng, nó trả về NULL. Hàm COUNT SQL Server thường được dùng với lệnh SELECT và kiểu trả về của nó là INT.

COUNT() là một hàm tích hợp, chấp nhận một tham số duy nhất, có thể là cột hoặc biểu thức hợp lệ và trả về một kết quả duy nhất để tóm tắt nhóm dữ liệu nhập vào. Hàm này không bỏ qua giá trị NULL bởi nó cũng xem xét chúng trong khi tính toán kết quả của truy vấn. Nó cũng có thể hoạt động với WHERE, GROUP BY, ORDER BY và HAVING để lấy kết quả được lọc.

Bài viết này sẽ hướng dẫn chi tiết cho bạn cách sử dụng hàm xử lý số COUNT() trong SQL Server với cú pháp và những ví dụ cụ thể để dễ hình dung và nắm bắt hàm tốt hơn.

Mô tả hàm COUNT SQL Server

Hàm COUNT trong SQL Server dùng để đếm số lượng bản ghi (dữ liệu, hàng) có trong một bảng dữ liệu. Những giá trị NULL bỏ qua không tính.

Cú pháp hàm COUNT SQL Server

Để sử dụng hàm COUNT trong SQL Server, ta dùng cú pháp như sau:

SELECT COUNT(cot)
  FROM bang
  [WHERE dieukien];

Tham số:

  • cot: cột hoặc giá trị tính toán, biểu thức mà bạn muốn đếm
  • bang: bảng dùng để lấy bản ghi. Phải có ít nhất 1 bảng trong mệnh đề FROM.
  • dieukien: tùy chọn. Điều kiện mà bản ghi phải đáp ứng để được chọn.

Lưu ý:

  • Hàm COUNT có thể được sử dụng trong các phiên bản sau của SQL Server: SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005.

Ví dụ về hàm COUNT SQL Server

Hãy xem và khám phá một số ví dụ về hàm COUNT trong SQL Server.

Giả sử, ta có bảng dữ liệu như sau:

Bảng dữ liệu

Ví dụ 1: Đếm số chuyên mục trong bảng

SELECT COUNT(*)
  FROM Quantrimang
  WHERE Sobai > 100;

Kết quả trả về:

Result: 5

Ở ví dụ này ta đếm số lượng chuyên mục có trong bảng Quantrimang mà số bài lớn hơn 100.

Ví dụ 2: Sử dụng DISTINCT

Lệnh 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.

SELECT COUNT(DISTINCT Sobai)
 FROM Quantrimang
 WHERE Sobai > 100;

Kết quả trả về:

Result: 4

Ví dụ này dùng từ khóa DISTINCT nên những giá trị lặp lại chỉ được tính một lần. Trong bảng dữ liệu cho trước, giá trị “101” xuất hiện 2 lần, nhưng chỉ được tính một lần, cho nên tổng số dòng được tính sẽ là 4.

Ví dụ 3: Sử dụng GROUP BY

Ví dụ sau đếm tất cả bản ghi liên quan tới một chuyên mục lớn và bạn sẽ thực hiện như sau:

SELECT Chuyenmuclon, COUNT(Chuyenmuccon) AS "So luong"
  FROM Quantrimang
  GROUP BY Chuyenmuclon;

Kết quả trả về:</>

+----------------+----------+
| Chuyenmuclon   | So luong |
+----------------+----------+
|Laptrinh        |    3     |
|Mang xa hoi     |    2     |
|Trinh duyet web |    1     |
+----------------+----------+

Hàm COUNT với OVER()

Lệnh OVER() quyết định hàng từ truy vấn được áp dụng cho hàm này, thứ tự hàm đánh giá chúng, khi nào các phép tính của hàm cần được khởi động lại. Truy vấn bên dưới cung cấp tổng số nhân viên cho từng nghề nghiệp ở bảng employee_info và sắp xếp kết quả theo thứ tự tăng dần:

SELECT DISTINCT occupation,
COUNT(name) OVER (PARTITION BY occupation) AS "Total Employee"
FROM employee_info
ORDER BY "Total Employee";

Kết quả nhận được:

Hàm COUNT trong SQL Server được dùng với Over

Sự khác biệt giữa hàm COUNT() và COUNT_BIG()

Hàm COUNT và COUNT_BIG trong SQL Server về cơ bản có cùng chức năng: đều đếm số mục trong bảng. Thế nhưng, đôi khi, bạn cần phải đưa ra lựa chọn phù hợp cho ứng dụng đang phát triển. Trong trường hợp đó, bạn nên đưa ra lựa chọn phù hợp nhất cho app dựa trên kiểu dữ liệu.

Hàm COUNT trả kết quả là một INT (số nguyên), còn hàm COUNT_BIG() trả kết quả là kiểu dữ liệu BIGINT. Vì thế, nếu có một bảng với hàng triệu bản ghi và cần đếm số lượng bản ghi. Hàm COUNT() sẽ trả về lỗi, còn COUNT_BIG() sẽ hiện một kết quả như vậy.

Sự khác biệt chính khác giữa chúng là trong khi tạo một index, hàm COUNT() không cho phép tạo chỉ mục nhóm trên trình xem. Tuy nhiên, bạn có thể tạo index theo nhóm khi dùng hàm COUNT_BIG().

Tóm lại, dù không có nhiều sự khác biệt, COUNT() và COUNT_BIG() vẫn có những chức năng riêng trong một số trường hợp. Nắm được thông tin này, bạn sẽ biết cách dùng chúng chính xác.

Về cơ bản, bạn cần nhớ những điều sau khi dùng lệnh count trong SQL Server:

Hàm Count() SQL Server được dùng để tìm số của các chỉ mục được trả về từ truy vấn đã chọn.

Đặc điểm chính:

  • Hàm này tìm thấy số lượng chỉ mục được trả về từ truy vấn đã chọn.
  • Hàm này nằm trong các hàm số.
  • Hàm này chỉ chấp nhận một tham số là biểu thức.
  • Hàm này bỏ qua giá trị NULL và không đếm chúng.

Có 3 cách mà bạn có thể dùng câu lệnh count trong SQL Server:

  • Toán tử COUNT(*) với lệnh SELECT. Nhóm kết quả có thể bao gồm: duplicate, null và hàng non-null.
  • COUNT(biểu thức ALL) được dùng để tính tổng số hàng trong bảng mà không phải hàng null.
  • Hàm COUNT(biểu thức DISTINCT) chỉ đếm số hàng riêng biệt trong một bảng không có bất kỳ giá trị null.

Bài trước: Hàm CEILING trong SQL Server

Bài tiếp: Hàm FLOOR trong SQL Server

Thứ Hai, 21/08/2023 16:51
4,523 👨 193.846
0 Bình luận
Sắp xếp theo
    ❖ SQL Server