Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Truy vấn MySQL tính trung bình các hàng cùng ID

Để tính giá trị trung bình của các hàng có cùng ID, bạn sử dụng hàm tổng hợp AVG() kết hợp với GROUP BY.

Ví dụ minh họa

Tạo bảng điểm sinh viên:

mysql> create table DemoTable ( 
    StudentId int, 
    StudentMarks int 
);

Chèn dữ liệu (StudentId 1000 có 4 bản ghi, 1001 có 2 bản ghi):

mysql> insert into DemoTable values(1000,78);
mysql> insert into DemoTable values(1001,88);
mysql> insert into DemoTable values(1000,89);
mysql> insert into DemoTable values(1000,67);
mysql> insert into DemoTable values(1000,90);
mysql> insert into DemoTable values(1001,91);

Hiển thị dữ liệu:

mysql> select * from DemoTable;

Kết quả:

+-----------+--------------+
| StudentId | StudentMarks |
+-----------+--------------+
| 1000      | 78           |
| 1001      | 88           |
| 1000      | 89           |
| 1000      | 67           |
| 1000      | 90           |
| 1001      | 91           |
+-----------+--------------+

Truy vấn tính trung bình theo StudentId

mysql> select StudentId, avg(StudentMarks) from DemoTable group by StudentId;

Kết quả:

+-----------+-------------------+
| StudentId | avg(StudentMarks) |
+-----------+-------------------+
| 1000      | 81.0000           |
| 1001      | 89.5000           |
+-----------+-------------------+

Giải thích:

  • GROUP BY StudentId: Nhóm các hàng theo ID sinh viên
  • AVG(StudentMarks): Tính trung bình cộng điểm trong mỗi nhóm
  • StudentId 1000: (78+89+67+90)/4 = 81.0
  • StudentId 1001: (88+91)/2 = 89.5

Kỹ thuật này là cơ sở của việc tổng hợp dữ liệu (aggregation) trong SQL, áp dụng rộng rãi cho báo cáo doanh thu, điểm số, thống kê sản xuất, v.v.