Django aggregate и Distinct вместе
Мне нужно добиться следующего.
class rooms(models.Model):
uniqueKey = models.IntegerField() #this can have same value multiple times
sellingPrice = models.IntegerField()
Мой запрос выглядит следующим образом
rooms.objects.all().distinct('uniquekey').aggregate(Sum('sellingPrice'))
Я хочу суммировать цену продажи для всех отдельных уникальных ключей.Вышеприведенный запрос дает следующую ошибку.
NotImplementedError("aggregate() + distinct(fields) not implemented.")
Пожалуйста, помогите мне.
Вы можете сначала аннотировать с помощью Min sellingPrice (или другого ограничителя) для каждого uniqueKey, а затем объединить, так:
from django.db.models import Min, Sum
rooms.objects.values('uniquekey').annotate(
min=Min('sellingPrice')
).aggregate(
sellingPrice__sum=Sum('min')
)