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

    solution

    Đề bài: [MySQL] Khử bản ghi trùng kết quả thi đấu

    Hệ thống ghi điểm một giải thể thao bị nhập trùng: cùng một vận động viên có thể có nhiều bản ghi cho cùng nội dung. Hãy giữ lại bản ghi có điểm cao nhất cho mỗi (vận động viên, nội dung); nếu trùng điểm thì giữ bản có id nhỏ nhất.

    Bảng ket_qua:

    Cột Kiểu Ý nghĩa
    id INT Mã bản ghi
    vandongvien VARCHAR(30) Tên VĐV
    noidung VARCHAR(20) Nội dung thi
    diem INT Điểm số

    Yêu cầu: in id, vandongvien, noidung, diem của bản ghi được giữ lại.

    Ví dụ: VĐV "An" nội dung "100m" có 2 bản 80 và 90 thì giữ bản điểm 90.

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

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

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

      id duy nhất. Không dùng NOW/CURDATE.

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

      Mỗi dòng: id, vandongvien, noidung, diem. Sắp xếp theo vandongvien, noidung tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE ket_qua (id INT, vandongvien VARCHAR(30), noidung VARCHAR(20), diem INT);
    INSERT INTO ket_qua VALUES (1,'An','100m',80),(2,'An','100m',90),(3,'Binh','100m',70),(4,'An','200m',60);

    Đầu ra:

    2	An	100m	90
    4	An	200m	60
    3	Binh	100m	70

    Giải thích:

    An/100m có 2 bản 80 và 90, giữ bản điểm 90 (id=2). Binh/100m và An/200m chỉ có 1 bản nên giữ nguyên.

    Đang tải editor...