Trong quá trình làm việc với các cơ sở dữ liệu, việc tính toán giá trị trung bình của các tập dữ liệu là một nhiệm vụ phổ biến. Trong MySQL, hàm AVG()
được sử dụng để lấy giá trị trung bình của một tập các giá trị. Bài viết này sẽ giới thiệu chi tiết cách sử dụng hàm này.
Giới thiệu về hàm AVG()
Hàm AVG()
là một hàm tổng hợp trong MySQL, có nghĩa là nó thực hiện tính toán trên tập hợp các giá trị và trả về một giá trị duy nhất. Cụ thể, hàm AVG()
sẽ tính giá trị trung bình của các giá trị số trong một cột dữ liệu đã chọn.
Cú pháp cơ bản của hàm AVG()
là:
SELECT AVG(column_name) FROM table_name
Trong đó:
column_name
là tên của cột mà bạn muốn tính giá trị trung bình.table_name
là tên của bảng chứa cột đó.
Ví dụ cơ bản
Chúng ta có một bảng tên là employees
với các cột id
, name
, salary
. Để tính giá trị trung bình của lương (salary
) của tất cả nhân viên, bạn có thể sử dụng cú pháp sau:
SELECT AVG(salary) AS average_salary FROM employees
Kết quả sẽ trả về giá trị trung bình của cột salary
trong bảng employees
.
Sử dụng với điều kiện WHERE
Bạn có thể kết hợp hàm AVG()
với mệnh đề WHERE
để tính giá trị trung bình dựa trên một điều kiện nhất định. Ví dụ, giả sử bạn chỉ muốn tính lương trung bình của những nhân viên thuộc phòng ban IT
, bạn có thể làm như sau:
SELECT AVG(salary) AS average_salary FROM employees WHERE department = 'IT'
Điều này giúp bạn lọc dữ liệu trước khi tính trung bình.
Kết hợp với các hàm tổng hợp khác
Hàm AVG()
có thể kết hợp với các hàm tổng hợp khác như SUM()
, COUNT()
, MAX()
, MIN()
để cung cấp các thông tin thống kê toàn diện hơn. Ví dụ, để lấy thông tin tổng quát về lương của nhân viên bao gồm tổng lương, lương trung bình, lương cao nhất và lương thấp nhất, bạn có thể sử dụng truy vấn:
SELECT
SUM(salary) AS total_salary,
AVG(salary) AS average_salary,
MAX(salary) AS highest_salary,
MIN(salary) AS lowest_salary
FROM
employees
Sử dụng với nhóm GROUP BY
Trong các tình huống cần tính giá trị trung bình theo nhóm, bạn có thể sử dụng AVG()
cùng với mệnh đề GROUP BY
. Giả sử bạn muốn tính lương trung bình cho từng phòng ban, truy vấn có thể viết như sau:
SELECT
department,
AVG(salary) AS average_salary
FROM
employees
GROUP BY
department
Kết quả sẽ trả về lương trung bình cho từng phòng ban.
Lưu ý
- Hàm
AVG()
sẽ bỏ qua các giá trị NULL trong quá trình tính toán. Nếu trong cột có giá trị NULL, nó sẽ không ảnh hưởng đến giá trị trung bình. - Đảm bảo rằng cột bạn muốn tính giá trị trung bình chỉ chứa các giá trị số. Nếu cột chứa các giá trị không phù hợp, truy vấn sẽ không thực hiện được hoặc sẽ trả về lỗi.
Kết luận
Hàm AVG()
là công cụ mạnh mẽ và tiện lợi trong MySQL để tính giá trị trung bình của các tập dữ liệu số. Bằng cách kết hợp với các mệnh đề và hàm khác như WHERE
, GROUP BY
, và các hàm tổng hợp khác, bạn có thể thực hiện các truy vấn phức tạp và thu được nhiều thông tin hữu ích từ cơ sở dữ liệu của mình.
Comments