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

วิธีคำนวณค่าเฉลี่ยของคอลัมน์ และแสดงผลไม่มีทศนิยมใน MySQL

การคำนวณค่าเฉลี่ยและปัดเศษทศนิยมด้วย ROUND() และ AVG()

ใช้ฟังก์ชัน AVG() คำนวณค่าเฉลี่ย แล้วใช้ ROUND() ปัดเศษให้เป็นจำนวนเต็ม (0 ตำแหน่งทศนิยม)

รูปแบบคำสั่ง

SELECT ROUND(AVG(column_name), 0) AS average_value FROM table_name;

ตัวอย่าง: ค่าเฉลี่ยคะแนน ปัดเป็นจำนวนเต็ม

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

CREATE TABLE DemoTable (
    Score INT
);

INSERT INTO DemoTable VALUES (98), (97), (91), (86), (45);

2. ดูข้อมูลทั้งหมด

SELECT * FROM DemoTable;

ผลลัพธ์:

+-------+
| Score |
+-------+
| 98    |
| 97    |
| 91    |
| 86    |
| 45    |
+-------+

3. คำนวณค่าเฉลี่ย ปัด 0 ตำแหน่งทศนิยม

SELECT ROUND(AVG(Score), 0) AS Average FROM DemoTable;

ผลลัพธ์:

+---------+
| Average |
+---------+
| 83      |
+---------+

การคำนวณ: (98+97+91+86+45) / 5 = 417 / 5 = 83.4 → ปัดเป็น 83

ฟังก์ชันปัดเศษที่เกี่ยวข้อง

ฟังก์ชันคำอธิบายตัวอย่าง
ROUND(x, d)ปัดเศษตามหลักมากที่สุด (0.5 ขึ้นไปปัดขึ้น)ROUND(83.4, 0) = 83
CEIL(x) / CEILING(x)ปัดขึ้นเสมอCEIL(83.1) = 84
FLOOR(x)ปัดลงเสมอFLOOR(83.9) = 83
TRUNCATE(x, d)ตัดทิ้งทศนิยม (ไม่ปัด)TRUNCATE(83.9, 0) = 83

การใช้งานขั้นสูง

ปัดเศษตามหลักต่างๆ

SELECT 
    AVG(Score) AS Exact_Average,
    ROUND(AVG(Score), 0) AS Round_0,
    ROUND(AVG(Score), 1) AS Round_1,
    ROUND(AVG(Score), 2) AS Round_2
FROM DemoTable;

ค่าเฉลี่ยต่อกลุ่ม (GROUP BY)

SELECT Department, ROUND(AVG(Salary), 0) AS AvgSalary
FROM Employees
GROUP BY Department;

จัดการ NULL

  • AVG() ข้ามค่า NULL อัตโนมัติ
  • หากทุกค่าเป็น NULL → คืนค่า NULL
  • ใช้ COALESCE(AVG(Score), 0) หากต้องการค่า 0 แทน NULL

ประเภทข้อมูลของผลลัพธ์

  • AVG() คืนค่า DECIMAL หรือ DOUBLE
  • ROUND() คืนค่าเดียวกับอินพุต (ถ้าใส่ DECIMAL ได้ DECIMAL)
  • ใช้ CAST(ROUND(AVG(Score), 0) AS UNSIGNED) หากต้องการ Integer ชัดเจน