คำอธิบาย
คำนวณเปอร์เซ็นต์จากผลรวมคะแนน 5 วิชา (เต็ม 500 คะแนน) ใช้ SUM(), ROUND(), CONCAT() ต่อเครื่องหมาย %
ขั้นตอนการสร้างตารางและข้อมูลตัวอย่าง
mysql> create table DemoTable (
Marks int );
Query OK, 0 rows affected (0.62 sec)
การเพิ่มข้อมูล (คะแนน 5 วิชา)
mysql> insert into DemoTable values(88); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(65); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(98); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(45); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(67); Query OK, 1 row affected (0.33 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
ผลลัพธ์:
+-------+ | Marks | +-------+ | 88 | | 65 | | 98 | | 45 | | 67 | +-------+ 5 rows in set (0.00 sec)
คิวรี่คำนวณเปอร์เซ็นต์และเติม %
mysql> select concat(round(SUM(Marks)*100/500), '%') from DemoTable;
ผลลัพธ์
+---------------------------------------+ | concat(round(SUM(Marks)*100/500), '%') | +---------------------------------------+ | 73% | +---------------------------------------+ 1 row in set (0.00 sec)
คำอธิบายการคำนวณ
- SUM(Marks) = 88+65+98+45+67 = 363
- 363 * 100 / 500 = 72.6
- ROUND(72.6) = 73
- CONCAT(73, '%') = '73%'
ปรับปรุง: ใช้ FORMAT() แทน ROUND+CONCAT
SELECT CONCAT(FORMAT(SUM(Marks)*100/500, 0), '%') FROM DemoTable;
FORMAT(72.6, 0) = '73' (มี Comma Separator สำหรับตัวเลขใหญ่)
กรณีมีหลายคน (Group By)
SELECT StudentName, CONCAT(ROUND(AVG(Marks)*100/100), '%') as Percentage FROM StudentMarks GROUP BY StudentName;