Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [SQL Server] Điểm trung bình từng lớp

    Khoa CNTT tổ chức thi giữa kỳ môn Cơ sở dữ liệu, điểm chấm theo thang nguyên 0–10, lưu trong bảng bangdiem:

    Cột Kiểu Ý nghĩa
    ma INT mã bài thi
    lop VARCHAR(20) mã lớp (vd 'CNTT64A')
    diem INT điểm bài thi (số nguyên)

    Hãy tính điểm trung bình của từng lớp, làm tròn 2 chữ số thập phân. Chú ý: AVG trên cột INT sẽ bị chia nguyên, cần ép kiểu trước khi tính.

    Ví dụ: lớp có hai bài 7 và 8 điểm phải ra trung bình 7.50 (không phải 7).

    • Định dạng đầu vào:

      SETUP SQL tạo bảng bangdiem và chèn dữ liệu.

    • Ràng buộc đầu vào:

      1≤1 \le1≤ số dòng ≤300\le 300≤300; 0≤diem≤100 \le diem \le 100≤diem≤10; mỗi lớp có ít nhất 1 bài thi.

    • Định dạng đầu ra:

      Mỗi dòng gồm 2 cột: lop, diemtb (DECIMAL(10,2), đúng 2 chữ số thập phân) — sắp xếp theo lop tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE bangdiem (ma INT, lop VARCHAR(20), diem INT);
    INSERT INTO bangdiem VALUES (1, 'CNTT64A', 7),(2, 'CNTT64A', 8),(3, 'CNTT64B', 9),(4, 'CNTT64B', 6),(5, 'CNTT64B', 7);

    Đầu ra:

    CNTT64A	7.50
    CNTT64B	7.33

    Giải thích:

    Lớp CNTT64A: (7 + 8) / 2 = 7.50. Lớp CNTT64B: (9 + 6 + 7) / 3 = 7.33 sau khi làm tròn 2 chữ số. Nếu quên ép kiểu, AVG trên INT sẽ ra 7 — sai.

    Đang tải editor...