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

    solution

    Đề bài: [SQL Server] Xếp hạng doanh thu chi nhánh theo vùng

    Chuỗi cửa hàng tiện lợi WinMart+ muốn xếp hạng doanh thu các chi nhánh trong từng vùng miền để bình xét thi đua quý.

    Bảng chinhanh:

    Cột Kiểu Ý nghĩa
    machi INT Mã chi nhánh
    ten NVARCHAR(50) Tên chi nhánh
    vung NVARCHAR(20) Vùng miền (Bac/Trung/Nam)
    doanhthu BIGINT Doanh thu quý (đồng)

    Với mỗi vùng, hãy xếp hạng các chi nhánh theo doanh thu giảm dần bằng RANK(). In ra vùng, tên chi nhánh, doanh thu và thứ hạng trong vùng.

    Ví dụ: trong vùng Bac, chi nhánh doanh thu cao nhất có hạng 1.

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

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

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

      1 ≤ số chi nhánh ≤ 1000. doanhthu ≥ 0.

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

      Mỗi dòng: vung, ten, doanhthu, hang. Sắp xếp theo vung tăng dần, doanhthu giảm dần, machi tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE chinhanh (machi INT, ten NVARCHAR(50), vung NVARCHAR(20), doanhthu BIGINT);
    INSERT INTO chinhanh VALUES
    (1, N'Cau Giay', N'Bac', 500000000),
    (2, N'Dong Da', N'Bac', 500000000),
    (3, N'Hai Chau', N'Trung', 300000000),
    (4, N'Quan 1', N'Nam', 700000000),
    (5, N'Quan 7', N'Nam', 450000000);

    Đầu ra:

    Bac	Cau Giay	500000000	1
    Bac	Dong Da	500000000	1
    Nam	Quan 1	700000000	1
    Nam	Quan 7	450000000	2
    Trung	Hai Chau	300000000	1

    Giải thích:

    Vùng Bac có hai chi nhánh cùng doanh thu 500 triệu nên cùng hạng 1 (RANK). Vùng Nam: Quan 1 (700tr) hạng 1, Quan 7 (450tr) hạng 2.

    Đang tải editor...