Ví điện tử ViPay phân tích hành vi người dùng theo khung giá trị giao dịch: Thap (dưới 100000 đồng), Trung binh (từ 100000 đến dưới 500000 đồng) và Cao (từ 500000 đồng trở lên).
Bảng giao_dich:
| Cột | Kiểu | Ý nghĩa |
|---|---|---|
| ma_gd | INT | Mã giao dịch (duy nhất) |
| gia_tri | INT | Giá trị giao dịch (đồng) |
Với mỗi khung, hãy tính so_gd (số giao dịch), tong_gt (tổng giá trị) và ti_trong (phần trăm tổng giá trị của khung so với tổng toàn bộ giao dịch, làm tròn 2 chữ số thập phân). Chỉ in những khung có ít nhất 2 giao dịch, theo thứ tự Thap → Trung binh → Cao. Lưu ý: mẫu số của tỉ trọng là tổng tất cả giao dịch, kể cả giao dịch thuộc khung bị loại. Dữ liệu luôn có tổng giá trị lớn hơn 0.
Ví dụ. Với dữ liệu: (1, 50000), (2, 80000), (3, 200000), (4, 300000), (5, 700000) thì kết quả là:
Thap 2 130000 9.77
Trung binh 2 500000 37.59
Khung Cao chỉ có 1 giao dịch nên không in, nhưng 700000 của nó vẫn nằm trong mẫu số 1330000.
Một kịch bản SQL gồm các lệnh CREATE TABLE và INSERT tạo dữ liệu cho bảng giao_dich.
Số dòng của bảng ≤300; 0≤gia_tri≤108; tổng giá trị toàn bảng >0.
Mỗi dòng gồm nhom, so_gd, tong_gt, ti_trong cách nhau bởi ký tự TAB, không có dòng tiêu đề. ti_trong có đúng 2 chữ số thập phân.
Ví dụ:
Đầu vào:
CREATE TABLE giao_dich (ma_gd INT, gia_tri INT);
INSERT INTO giao_dich VALUES (1, 50000), (2, 80000), (3, 200000), (4, 300000), (5, 700000);
Đầu ra:
Thap 2 130000 9.77
Trung binh 2 500000 37.59
Giải thích:
Đang tải editor...