Django Query: aggregate() + distinct(fields) не реализованы

У меня следующая модель:

class Data(models.Model):
    metric = models.IntegerField(choices=....)
    date = models.DateField()
    value = models.IntegerField()
    linkedObject = models.ForeignKey()
    .....

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

То, что я уже использую, это order_by + distinct для получения самого нового значения для каждого выбора метрики. Это работает.

Data.objects.all().order_by("metric", "-date").distinct("metric")

Я попытался объединить это с агрегатом, чтобы сделать следующий шаг:

Data.objects.all().order_by("metric", "-date").distinct("metric").annotate(Sum("value"))

К сожалению, я получаю следующее сообщение об ошибке:

aggregate() + distinct(fields) not implemented.

Подсказка: я использую postgres в качестве базы данных

Это должно быть возможно с:

Data.objects.order_by("metric", "-date").values(
    "metric", "date",
).annotate(value_sum=Sum("value"))

Это сгруппирует сумму по metric и date и вернет результат с нужной сортировкой.

Вернуться на верх