×

Tính giá trị trung bình với hàm AVG() trong MySQL

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