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

    solution

    Đề bài: [MySQL] Khách hàng phân biệt theo chi nhánh

    Ngân hàng VietBank muốn biết mỗi chi nhánh đã phục vụ bao nhiêu khách hàng khác nhau trong ngày (một khách có thể giao dịch nhiều lần).

    Bảng giao_dich:

    Cột Kiểu Ý nghĩa
    ma_gd INT Mã giao dịch (duy nhất)
    chi_nhanh VARCHAR(50) Tên chi nhánh
    ma_kh INT Mã khách hàng
    so_tien INT Số tiền giao dịch (đồng)

    Với mỗi chi nhánh, hãy tính so_kh (số khách hàng phân biệt) và so_gd (tổng số giao dịch). Kết quả gồm chi_nhanh, so_kh, so_gd, sắp xếp theo chi_nhanh tăng dần.

    Ví dụ. Với dữ liệu: (1, 'Cau Giay', 101, 500000), (2, 'Cau Giay', 101, 300000), (3, 'Cau Giay', 102, 700000), (4, 'Dong Da', 103, 400000) thì kết quả là:

    Cau Giay	2	3
    Dong Da	1	1
    
    • Định dạng đầu vào:

      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.

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

      Số dòng của bảng ≤300\le 300≤300; 1≤ma_kh≤1061 \le ma\_kh \le 10^61≤ma_kh≤106.

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

      Mỗi dòng gồm chi_nhanh, so_kh, so_gd cách nhau bởi ký tự TAB, không có dòng tiêu đề.

    Ví dụ:

    Đầu vào:

    CREATE TABLE giao_dich (ma_gd INT, chi_nhanh VARCHAR(50), ma_kh INT, so_tien INT);
    INSERT INTO giao_dich VALUES (1, 'Cau Giay', 101, 500000), (2, 'Cau Giay', 101, 300000), (3, 'Cau Giay', 102, 700000), (4, 'Dong Da', 103, 400000);

    Đầu ra:

    Cau Giay	2	3
    Dong Da	1	1

    Giải thích:

    Chi nhánh Cầu Giấy có 3 giao dịch nhưng chỉ của 2 khách phân biệt (101 và 102) vì khách 101 giao dịch 2 lần. Đống Đa có 1 khách với 1 giao dịch.

    Đang tải editor...