Подсчет суммы значений, основанный на уникальных значениях

Я не уверен, что заголовок достаточно ясен, поэтому я постараюсь объяснить, что я хочу и в чем проблема.

Что у меня есть
У меня есть график, который заполняется данными из запроса. Каждый день месяца имеет значение, которое группируется по дням, например: 1 день = 5, 2 день = 6, 3 день = 8 и т.д.

Это работает со следующим кодом, для 1 подписки:

data_usage = DataUsage.objects \
    .filter(subscription_id=subscription_id) \
    .filter(created_at__month=today.month) \
    .annotate(
        created_date=TruncDay('created_at')
    ).values('created_date') \
    .annotate(
        subscription_id=Max('subscription_id'),
        data_usage=Max('data_usage'),
        created_at=Max('created_at')
    ).values(
        'subscription_id',
        'data_usage',
        'created_at'
    )

Ниже показан правильно заполненный график с помощью приведенного выше кода: enter image description here

Что мне нужно
Мне нужен тот же график, но на этот раз со значениями от каждой подписки. То есть, по сути, код должен дать мне тот же результат, но с суммой 'data_usage' всех подписок за этот день. Должно использоваться только самое высокое и, следовательно, последнее значение для каждой подписки.

Я пробовал 10's решений, которые не работали для меня, текущий код не работает:

data_usage = DataUsage.objects \
    .filter(created_at__month=today.month) \
    .annotate(
        created_date=TruncDay('created_at')
    ).values('created_date') \
    .annotate(
        subscription_id=Max('subscription_id'),
        data_usage=Sum('data_usage'),
        created_at=Max('created_at')
    ).values(
        'data_usage',
        'created_at'
    )

enter image description here

Что не так с данными?
. Всего должно быть около 800 ГБ. Это намного больше этого значения, похоже, что он просто считает все...

Вкратце, что мне нужно
. Мне нужна сумма data_usage, сгруппированная по дням и заполненная самым высоким/последним значением подписки. Это должно дать мне правильное общее использование данных в день.

Модель использования данных согласно запросу:

class DataUsage(models.Model):
    objects = DataUsageQuerySet.as_manager()

    id = models.AutoField(primary_key=True)
    subscription_id = models.ForeignKey('subscriptions.Subscription', db_column='subscription_id', blank=True, null=True, on_delete=models.CASCADE) # Becomes subscription_id
    data_usage = models.FloatField(max_length=128, blank=True, null=True)
    created_at = models.DateTimeField(auto_now_add=True, blank=True, null=True)
    modified_at = models.DateTimeField(auto_now=True, blank=True, null=True)
Вернуться на верх