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

Tính trung bình theo giá trị VARCHAR trùng lặp trong MySQL

Để tính trung bình (AVG) của cột số ứng với từng giá trị văn bản (VARCHAR) trùng lặp, dùng AVG() kết hợp GROUP BY theo cột VARCHAR.

Ví dụ minh họa

Tạo bảng:

mysql> create table DemoTable( 
    Value int, 
    Value2 varchar(100) 
);

Chèn dữ liệu (Value2 trùng lặp '999.999.999.999'):

mysql> insert into DemoTable values(10,'999.999.999.999');
mysql> insert into DemoTable values(20,'888.888.888.888');
mysql> insert into DemoTable values(30,'999.999.999.999');

Hiển thị dữ liệu:

mysql> select * from DemoTable;

Kết quả:

+-------+-----------------+
| Value | Value2          |
+-------+-----------------+
| 10    | 999.999.999.999 |
| 20    | 888.888.888.888 |
| 30    | 999.999.999.999 |
+-------+-----------------+

Truy vấn AVG(Value) GROUP BY Value2

mysql> select Value2, avg(Value) from DemoTable group by Value2;

Kết quả:

+-----------------+------------+
| Value2          | avg(Value) |
+-----------------+------------+
| 999.999.999.999 | 20.0000    |
| 888.888.888.888 | 20.0000    |
+-----------------+------------+

Giải thích:

  • GROUP BY Value2: Tạo 2 nhóm theo giá trị chuỗi Value2
  • Nhóm '999.999.999.999': có Value = 10 và 30 → AVG = (10+30)/2 = 20
  • Nhóm '888.888.888.888': có Value = 20 → AVG = 20

Cách này áp dụng cho: điểm trung bình theo mã môn học, doanh thu trung bình theo mã sản phẩm, lương trung bình theo phòng ban (mã phòng ban là VARCHAR), v.v.