Trường THPT Chu Văn An tổng hợp kết quả thi thử: mỗi lớp một dòng với điểm trung bình của ba môn toan, van, anh (làm tròn 2 chữ số thập phân).
Bảng diemthi:
| Cột | Kiểu | Ý nghĩa |
|---|---|---|
| malop | varchar(10) | Mã lớp |
| mon | varchar(10) | 'toan', 'van' hoặc 'anh' |
| diem | int | Điểm bài thi (0–10) |
Lưu ý: phải CAST(diem AS decimal(...)) trước khi đưa vào PIVOT (AVG(...)), nếu không AVG trên kiểu int sẽ bị cắt phần thập phân. Kết quả bọc CAST(ROUND(..., 2) AS decimal(10,2)).
Lớp 12A1 có hai bài toán điểm 7 và 8 thì cột toan in 7.50.
Script T-SQL tạo bảng diemthi và chèn dữ liệu. Mỗi lớp luôn có ít nhất một bài thi ở cả ba môn.
3≤ số dòng ≤3000; 0≤diem≤10; mỗi lớp có đủ điểm cả 3 môn.
SELECT in malop, toan, van, anh (mỗi cột là điểm trung bình dạng số thập phân 2 chữ số), sắp xếp theo malop tăng dần.
Ví dụ:
Đầu vào:
CREATE TABLE diemthi (malop varchar(10), mon varchar(10), diem int);
INSERT INTO diemthi VALUES ('12A1','toan',7),('12A1','toan',8),('12A1','van',6),('12A1','anh',9),('12A2','toan',5),('12A2','van',7),('12A2','van',8),('12A2','anh',6);Đầu ra:
12A1 7.50 6.00 9.00
12A2 5.00 7.50 6.00
Giải thích:
Đang tải editor...