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

    solution

    Đề bài: [MySQL] Phân vị mức bồi thường bảo hiểm

    Công ty bảo hiểm muốn xếp các vụ bồi thường theo phân vị (percent rank) so với toàn bộ vụ trong cùng nghiệp vụ, để xác định vụ có mức bồi thường cao bất thường.

    Bảng boi_thuong:

    Cột Kiểu Ý nghĩa
    mavu INT Mã vụ
    nghiepvu VARCHAR(20) Nghiệp vụ (xe/suckhoe/...)
    sotien INT Số tiền bồi thường (triệu đồng)

    Yêu cầu: in mavu, nghiepvu, sotien, phan_vi = PERCENT_RANK trong từng nghiệp vụ (làm tròn 2 chữ số). Sắp xếp theo nghiepvu, sotien tăng dần, mavu tăng dần.

    Ví dụ: trong nghiệp vụ có 3 vụ 10/20/30 thì phân vị lần lượt là 0.00, 0.50, 1.00.

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

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

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

      sotien >= 0. Không dùng NOW/CURDATE.

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

      Mỗi dòng: mavu, nghiepvu, sotien, phan_vi (ROUND 2). Sắp xếp theo nghiepvu, sotien, mavu tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE boi_thuong (mavu INT, nghiepvu VARCHAR(20), sotien INT);
    INSERT INTO boi_thuong VALUES (1,'xe',10),(2,'xe',20),(3,'xe',30),(4,'suckhoe',5);

    Đầu ra:

    4	suckhoe	5	0.0
    1	xe	10	0.0
    2	xe	20	0.5
    3	xe	30	1.0

    Giải thích:

    Nghiệp vụ xe có 3 vụ: 10 -> 0.00, 20 -> 0.50, 30 -> 1.00. Nghiệp vụ suckhoe có 1 vụ nên phân vị 0.00.

    Đang tải editor...