Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: Tổng tiền giao dịch theo tài khoản

    Thống kê tổng tiền giao dịch theo tài khoản trong collection transactions.

    Lưu ý cấu trúc dữ liệu: mỗi document là một "bucket" của một tài khoản, gồm account_id và mảng transactions; mỗi phần tử của mảng này là một giao dịch (có các trường date, amount, transaction_code, symbol, price, total). Trường amount nằm bên trong từng phần tử mảng, không nằm ở cấp document — gợi ý: dùng $unwind.

    Yêu cầu: • Gom nhóm theo account_id (giá trị nhóm nằm ở _id) • Tính tổng amount của tất cả giao dịch thuộc mỗi tài khoản, đặt tên trường kết quả là totalAmount • Sắp xếp theo totalAmount giảm dần; nếu bằng nhau thì theo _id tăng dần • Lấy 10 tài khoản cao nhất

    Không cần lệnh use. Chương trình chỉ được in kết quả của một câu aggregate.

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

      Collection transactions (dữ liệu mẫu sample_analytics.transactions) đã được nạp sẵn.

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

      Kết quả của câu aggregate theo định dạng mongosh: một mảng 10 document dạng { _id: <account_id>, totalAmount: <tổng amount> }. Ví dụ phần đầu:

      [
        { _id: 402535, totalAmount: 560036 },
        ...
      ]
      

    Ví dụ:

    Đầu vào:

    sample_analytics.transactions

    Đầu ra:

    [
      { _id: 402535, totalAmount: 560036 },
      { _id: 329562, totalAmount: 544606 },
      { _id: 740604, totalAmount: 543136 },
      { _id: 147085, totalAmount: 535893 },
      { _id: 678107, totalAmount: 535755 },
      { _id: 918539, totalAmount: 535710 },
      { _id: 492843, totalAmount: 534405 },
      { _id: 719393, totalAmount: 533476 },
      { _id: 972116, totalAmount: 533410 },
      { _id: 831097, totalAmount: 532752 }
    ]

    Chủ đề

    🗄️ Cơ sở dữ liệuMongodbAggregationTất cả môn học

    Đang tải editor...