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

Tính trung bình tổng điểm theo số ID khác nhau trong MySQL

Để tính trung bình tổng điểm chia cho số lượng ID riêng biệt (distinct), dùng SUM(Score) / COUNT(DISTINCT Id).

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable (
    Id INT,
    Score INT
);

Chèn dữ liệu (ID 10 và 11 đều có 2 bản ghi):

mysql> INSERT INTO DemoTable VALUES(10, 90);
mysql> INSERT INTO DemoTable VALUES(10, 190);
mysql> INSERT INTO DemoTable VALUES(11, 230);
mysql> INSERT INTO DemoTable VALUES(11, 130);

Xem dữ liệu:

mysql> SELECT * FROM DemoTable;

Kết quả

+------+-------+
| Id   | Score |
+------+-------+
| 10   | 90    |
| 10   | 190   |
| 11   | 230   |
| 11   | 130   |
+------+-------+

Tổng điểm = 640, số ID distinct = 2, trung bình = 320:

mysql> SELECT SUM(Score) / COUNT(DISTINCT Id) FROM DemoTable;

Kết quả

+---------------------------------+
| SUM(Score) / COUNT(DISTINCT Id) |
+---------------------------------+
| 320.0000                        |
+---------------------------------+

Lưu ý: Kết quả là số thực (decimal). Dùng CAST(... AS UNSIGNED) hoặc ROUND() nếu muốn số nguyên.