Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tính phần trăm điểm sinh viên và thêm dấu % trong MySQL

Tính tỷ lệ phần trăm và format thêm dấu % trong MySQL

Sử dụng SUM() tính tổng điểm, chia cho tổng điểm tối đa, nhân 100, làm tròn ROUND(), nối chuỗi CONCAT(...,'%').

1. Tạo bảng và chèn điểm 5 môn

mysql> CREATE TABLE DemoTable (Marks INT);
mysql> INSERT INTO DemoTable VALUES (88), (65), (98), (45), (67);

2. Xem dữ liệu

mysql> SELECT * FROM DemoTable;
+-------+
| Marks |
+-------+
| 88    |
| 65    |
| 98    |
| 45    |
| 67    |
+-------+

3. Truy vấn: Tính % (giả sử mỗi môn max 100, 5 môn = 500)

mysql> SELECT CONCAT(ROUND(SUM(Marks) * 100 / 500), '%') FROM DemoTable;

4. Kết quả

+---------------------------------------+
| CONCAT(ROUND(SUM(Marks)*100/500),'%') |
+---------------------------------------+
| 73%                                   |
+---------------------------------------+

Phân tích:

  • Tổng điểm: 88+65+98+45+67 = 363
  • Tổng max: 5 môn × 100 = 500
  • Phần trăm: 363 × 100 / 500 = 72.6
  • ROUND(72.6) = 73
  • CONCAT(73, '%') = '73%'

Cải tiến - Tính % cho từng sinh viên (nếu có cột StudentId):

SELECT StudentId,
       CONCAT(ROUND(SUM(Marks) * 100 / (COUNT(*) * 100)), '%') AS Percentage
FROM DemoTable
GROUP BY StudentId;

Làm tròn 2 chữ số thập phân:

CONCAT(ROUND(SUM(Marks) * 100.0 / 500, 2), '%')  -- 72.60%

Lưu ý: Dùng 100.0 (float) thay vì 100 (int) để tránh chia nguyên số trong MySQL cũ.