Как вычислить агрегированную сумму с помощью django ORM?
Я пытаюсь сгруппировать_by() данные на основе дат и с каждым днем я хочу вычислить Количество в этот день и общее количество на данный момент.
Пример вывода, который я получаю:
[
{
"dates": "2022-11-07",
"count": 1
},
{
"dates": "2022-11-08",
"count": 3
},
{
"dates": "2022-11-09",
"count": 33
}
]
Пример вывода, которого я пытаюсь достичь:
[
{
"dates": "2022-11-07",
"count": 1,
"aggregate_count": 1
},
{
"dates": "2022-11-08",
"count": 3,
"aggregate_count": 4
},
{
"dates": "2022-11-09",
"count": 33,
"aggregate_count": 37
}
]
Я пытался решить вашу проблему следующим образом
Логика кода
cumulative_count= 0
response = [
{
"dates": "2022-11-07",
"count": 1
},
{
"dates": "2022-11-08",
"count": 3
},
{
"dates": "2022-11-09",
"count": 33
}
]
for i in responce:
cumulative_count +=i['count']
i['cumulative_count'] = cumulative_count
print(responce)
Выход
[
{
'dates': '2022-11-07',
'count': 1,
'cumulative_count': 1
},
{
'dates': '2022-11-08',
'count': 3,
'cumulative_count': 4
},
{
'dates': '2022-11-09',
'count': 33,
'cumulative_count': 37
}
]
NOTE: Преобразуйте ваш ответ ORM Query в список словарей, тогда вы сможете достичь этих вещей.