Дана таблица продаж с колонками: region, product, quantity, price.
Для каждой пары (region, product) посчитайте:
- total_qty — сумму quantity
- avg_price — среднюю цену (округлить до 2 знаков)
- revenue — сумму (quantity × price) по строкам
Задача основана на вопросах с собеседований в МТС и Сбер.
def multi_agg(data: dict) -> list[dict]:
data = {"region": ["Moscow","Moscow","Moscow","SPb"], "product": ["A","A","B","A"],
"quantity": [10,5,3,8], "price": [100,120,200,110]}
multi_agg(data) → [
{"region": "Moscow", "product": "A", "total_qty": 15, "avg_price": 110.0, "revenue": 2200},
{"region": "Moscow", "product": "B", "total_qty": 3, "avg_price": 200.0, "revenue": 600},
{"region": "SPb", "product": "A", "total_qty": 8, "avg_price": 110.0, "revenue": 880}
]
Результат отсортирован по region, затем product.
data = {"region":["Moscow","Moscow","Moscow","SPb"],"product":["A","A","B","A"],"quantity":[10,5,3,8],"price":[100,120,200,110]}[{"region":"Moscow","product":"A","total_qty":15,"avg_price":110,"revenue":2200},{"region":"Moscow","product":"B","total_qty":3,"avg_price":200,"revenue":600},{"region":"SPb","product":"A","total_qty":8,"avg_price":110,"revenue":880}]data = {"region":["X","X","Y"],"product":["P","P","P"],"quantity":[1,2,3],"price":[10,20,30]}[{"region":"X","product":"P","total_qty":3,"avg_price":15,"revenue":50},{"region":"Y","product":"P","total_qty":3,"avg_price":30,"revenue":90}]data = {"region":["A","A","B"],"product":["X","Y","X"],"quantity":[5,3,2],"price":[100,200,100]}[{"region":"A","product":"X","total_qty":5,"avg_price":100,"revenue":500},{"region":"A","product":"Y","total_qty":3,"avg_price":200,"revenue":600},{"region":"B","product":"X","total_qty":2,"avg_price":100,"revenue":200}]