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
и вернет результат с нужной сортировкой.