Mô tả
Hàm AVG trong SQL Server tính giá trị trung bình của một biểu thức hoặc cột. Các giá trị NULL bị bỏ qua không tính vào trung bình.
Cú pháp
SELECT AVG(cot)
FROM bang
[WHERE dieukien];
Tham số:
- cot: Cột hoặc biểu thức cần tính trung bình.
- bang: Bảng lấy dữ liệu (ít nhất 1 bảng trong FROM).
- dieukien: Điều kiện lọc bản ghi (tùy chọn).
Lưu ý:
- Hỗ trợ từ SQL Server 2005 trở lên.
Ví dụ
Giả sử bảng Quantrimang có dữ liệu:
| Chuyenmuclon | Chuyenmuccon | Sobai |
|---|---|---|
| Laptrinh | SQL Server | 152 |
| Laptrinh | Python | 101 |
| Laptrinh | JavaScript | 122 |
| Mang xa hoi | 101 | |
| Mang xa hoi | 165 | |
| Trinh duyet web | Google Chrome | 94 |
Ví dụ 1: Tính trung bình số bài viết > 100
SELECT AVG(Sobai) AS "So bai trung binh"
FROM Quantrimang
WHERE Sobai > 100;
-- Kết quả: 128.2
Tính trung bình các giá trị Sobai > 100: (152+101+122+101+165)/5 = 128.2
Ví dụ 2: Dùng DISTINCT
SELECT AVG(DISTINCT Sobai) AS "So bai trung binh"
FROM Quantrimang
WHERE Sobai > 100;
-- Kết quả: 135
Với DISTINCT, giá trị 101 chỉ đếm 1 lần: (152+101+122+165)/4 = 135
Ví dụ 3: Tính trung bình theo nhóm (GROUP BY)
SELECT Chuyenmuclon, AVG(Sobai) AS "So bai trung binh"
FROM Quantrimang
GROUP BY Chuyenmuclon;
-- Kết quả:
-- Chuyenmuclon | So bai trung binh
-- Laptrinh | 108
-- Mang xa hoi | 158.5
-- Trinh duyet web | 94