Hàm AVG trong SQL Server

Mô tả

Hàm AVG trong SQL Server trả về giá trị trung bình của một biểu thức hay giá trị trung bình theo cột được chỉ định của các dòng được chọn. Những giá trị NULL bỏ qua không tính.

Cú pháp

Để tính giá trị trung bình, ta sử dụng hàm AVG trong SQL Server cú pháp như sau:

SELECT AVG(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 tính trung bình
  • 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 AVG 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ụ

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

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

Ví dụ 1: Tính số lượng số bài viết trung bình của website Quantrimang

SELECT AVG(Sobai) AS "So bai trung binh" FROM Quantrimang WHERE Sobai > 100; Result: So bai trung binh 128.2

Ở ví dụ này ta tính giá trị trung bình cho tất cả các giá trị có trong dữ liệu cần tính, nên kết quả trung bình được tính như sau, lấy tổng của cột Sobai sau đó chia cho tổng số dòng có dữ liệu khác rỗng có giá trị lớn hơn 100.

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

SELECT AVG(DISTINCT Sobai) AS "So bai trung binh" FROM Quantrimang WHERE Sobai > 100; Result: So bai trung binh 135

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, kết quả trung bình được tính như sau:

(152 + 101 + 122 + 165)/4 = 135

Ví dụ 3: Tính giá trị trung bình theo cột được chỉ định của các dòng được chọn

Để tính giá trị trung bình theo cột được chỉ định của các dòng được chọn, ta sử dụng mệnh đề GROUP BY.

Ví dụ sau tính giá trị trung bình của 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, AVG(Sobai) AS "So bai trung binh" FROM Quantrimang GROUP BY Chuyenmuclon; Result:
Chuyenmuclon So bai trung binh
Laptrinh 108
Mang xa hoi 158.5
Trinh duyet web            94