Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

หาค่าเฉลี่ยของค่าเฉลี่ย (Average of Averages) ใน MySQL

การคำนวณ Average of Averages ใน MySQL

ใช้ AVG() บนผลรวมของคอลัมน์ แล้วหารจำนวนคอลัมน์ (หรือใช้ AVG ต่อคอลัมน์ แล้ว AVG อีกครั้ง)

ตัวอย่างการใช้งาน

สร้างตาราง 3 คอลัมน์ตัวเลข:

mysql> create table DemoTable (Value1 int, Value2 int, Value3 int);
mysql> insert into DemoTable values(10,20,30);
mysql> insert into DemoTable values(13,15,18);
mysql> insert into DemoTable values(21,31,41);

ข้อมูล:

+--------+--------+--------+
| Value1 | Value2 | Value3 |
+--------+--------+--------+
| 10     | 20     | 30     |
| 13     | 15     | 18     |
| 21     | 31     | 41     |
+--------+--------+--------+

คิวรีหา Average of Averages (ค่าเฉลี่ยของค่าเฉลี่ยแต่ละแถว):

mysql> select avg(Value1 + Value2 + Value3) / 3.0 from DemoTable;
+-------------------------------+
| avg(Value1 + Value2 + Value3) / 3.0 |
+-------------------------------+
| 22.11111111                   |
+-------------------------------+

การคำนวณ:

  • แถว 1: (10+20+30)/3 = 20
  • แถว 2: (13+15+18)/3 = 15.333...
  • แถว 3: (21+31+41)/3 = 31
  • Average of averages: (20 + 15.333 + 31) / 3 = 22.111...

วิธีอื่น (ชัดเจนกว่า):

SELECT AVG(row_avg) FROM (
    SELECT (Value1 + Value2 + Value3) / 3.0 AS row_avg FROM DemoTable
) t;

ข้อควรระวัง: "Average of Averages" ≠ "Overall Average" (เว้นแต่ Group Size เท่ากัน) | Overall Average = AVG(Value1), AVG(Value2), AVG(Value3) แล้วเฉลี่ย 3 ค่า | หรือ SUM(Value1+Value2+Value3) / COUNT(*) / 3