Thanks Matthew will take a look. On Monday, 24 September 2018 15:40:44 UTC+1, Matthew Pava wrote: > > Hi David, > > Performing multiple annotations on a queryset is not the same as combining > multiple aggregations. > > Saying that, if you truly are getting wrong results, you could try using > the Window functions or the Subquery object. > > > https://docs.djangoproject.com/en/2.1/ref/models/database-functions/#window-functions > > > https://docs.djangoproject.com/en/2.1/ref/models/expressions/#subquery-expressions > > > > > > *From:* [email protected] <javascript:> [mailto: > [email protected] <javascript:>] *On Behalf Of *David > *Sent:* Monday, September 24, 2018 9:36 AM > *To:* Django users > *Subject:* Multiple annotations in one query > > > > Hi > > > > I understand that performing multiple annotations on a queryset will > produce incorrect results, I was wondering how anyone else gets around this? > > > > "Combining multiple aggregations with *annotate()* will yield the wrong > results <https://code.djangoproject.com/ticket/10060> because joins are > used instead of subqueries" > > > > My query for example: > > > > data = Client.objects.filter( > > case=self.kwargs['case_pk'] > > ).select_related( > > 'case', 'inheritance', > > ).prefetch_related( > > 'children_set', 'stepchildren_set', > > 'grandchildren_set', 'property_set', > > 'investment_set', 'insurance_set', > > 'liability_set', 'lumpsumdeathinservice_set', > > ).annotate( > > property_sum=Sum('property__value',), > > investment_sum=Sum('investment__value'), > > insurance_sum=Sum('insurance__value'), > > liability_sum=Sum('liability__value'), > > lumpsumdeathinservice_sum=Sum( > 'lumpsumdeathinservice__value'), > > ).order_by( > > 'last_name', 'first_name' > > ) > > > > > > I need to get the sum'd values. > > > > Will I have to query each model individually and annotate it? and then > somehow merge the querysets? > > > > Thanks > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To post to this group, send email to [email protected] > <javascript:>. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/963bba41-6bcb-43b5-bd34-9ae4b9f709d5%40googlegroups.com > > <https://groups.google.com/d/msgid/django-users/963bba41-6bcb-43b5-bd34-9ae4b9f709d5%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. >
-- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/56b3be05-74c9-4fa6-8cf6-dc40b5462b90%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

