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

หาค่าเฉลี่ยตามกลุ่มค่า VARCHAR ที่ซ้ำกันใน MySQL ด้วย GROUP BY

การคำนวณค่าเฉลี่ยต่อกลุ่มค่าข้อความที่ซ้ำกัน

เมื่อมีคอลัมน์ตัวเลข (Value) และคอลัมน์ข้อความ (Value2) ที่มีค่าซ้ำ เราสามารถหาค่าเฉลี่ยของ Value จัดกลุ่มตาม Value2 ได้โดยใช้ AVG() กับ GROUP BY Value2

สร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    Value INT,
    Value2 VARCHAR(100)
);
Query OK, 0 rows affected (0.84 sec)

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');

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+-------+-----------------+
| Value | Value2          |
+-------+-----------------+
| 10    | 999.999.999.999 |
| 20    | 888.888.888.888 |
| 30    | 999.999.999.999 |
+-------+-----------------+
3 rows in set (0.00 sec)

คำสั่งหาค่าเฉลี่ย Value ต่อ Value2

mysql> SELECT Value2, AVG(Value) FROM DemoTable GROUP BY Value2;

ผลลัพธ์:

+-----------------+------------+
| Value2          | avg(Value) |
+-----------------+------------+
| 999.999.999.999 | 20.0000    |
| 888.888.888.888 | 20.0000    |
+-----------------+------------+
2 rows in set (0.06 sec)

คำอธิบาย

  • GROUP BY Value2 : จัดกลุ่มตามค่าข้อความใน Value2
  • กลุ่ม '999.999.999.999' มี Value 10 และ 30 → ค่าเฉลี่ย = 20
  • กลุ่ม '888.888.888.888' มี Value 20 → ค่าเฉลี่ย = 20
  • MySQL จัดกลุ่มค่าข้อความได้เหมือนค่าตัวเลข ไม่มีปัญหา