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

หาค่าเฉลี่ยคอลัมน์ใน MySQL ด้วยฟังก์ชันรวม (Aggregate)

ฟังก์ชัน 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)