ฟังก์ชัน AVG() ใช้หาค่าเฉลี่ย (Average) ของคอลัมน์ตัวเลขใน MySQL ได้โดยตรง นอกจากนี้ยังสามารถคำนวณค่าเฉลี่ยแบบกำหนดเองได้ด้วย SUM() / COUNT()
ตัวอย่างการสร้างตาราง
mysql> create table DemoTable (
Number int );
Query OK, 0 rows affected (0.79 sec)
เพิ่มข้อมูลตัวเลข
mysql> insert into DemoTable values(56); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(78); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(89); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(98); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable values(91); Query OK, 1 row affected (0.35 sec) mysql> insert into DemoTable values(96); Query OK, 1 row affected (0.15 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
+--------+ | Number | +--------+ | 56 | | 78 | | 89 | | 98 | | 91 | | 96 | +--------+ 6 rows in set (0.00 sec)
คำสั่งหาค่าเฉลี่ย (ตัวอย่างใช้สูตรคำนวณเอง)
mysql> select (sum(Number)*(100))/(100+500) from DemoTable;
ผลลัพธ์
+-------------------------------+ | (sum(Number)*(100))/(100+500) | +-------------------------------+ | 84.6667 | +-------------------------------+ 1 row in set (0.00 sec)
คำอธิบาย: ตัวอย่างนี้ใช้สูตรคำนวณพิเศษ (SUM * 100) / (100 + 500) ซึ่งไม่ใช่ค่าเฉลี่ยทั่วไป
วิธีมาตรฐานหาค่าเฉลี่ย: ใช้ AVG(Number) หรือ SUM(Number) / COUNT(*)
mysql> select avg(Number) from DemoTable; -- ผลลัพธ์: 84.6667
ทั้งสองวิธีให้ผลลัพธ์เท่ากัน แต่ AVG() อ่านง่ายกว่าและจัดการ NULL อัตโนมัติ (ไม่นับ NULL)