sql >> Databáze >  >> RDS >> Mysql

Django seskupit podle dat a hodnot SUM

Hmm, používáte Count , měli byste použít Sum a values() určí, co jde do GROUP BY takže byste měli použít values('datetime') pouze. Vaše sada dotazů by měla vypadat nějak takto:

from django.db.models import Sum

values = self.model.objects.filter(
    datetime__range=(self.dates[0], self.dates[1])
).values('datetime').annotate(data_sum=Sum('data'))

i když si nejsem tak jistý pořadím filter() , takže by to mohlo být toto:

values = self.model.objects.values('datetime').annotate(data_sum=Sum('data')).filter(
    datetime__range=(self.dates[0], self.dates[1])
)

Myslím, že bys chtěl zkusit obojí. Pokud chcete vidět nezpracovaný dotaz této sady dotazů, použijte Queryset.query :

print self.model.objects.filter(
    datetime__range=(self.dates[0], self.dates[1])
).values('datetime').annotate(data_sum=Sum('data')).query.__str__()

Můžete se tedy ujistit, že dostanete správný dotaz.

Doufám, že to pomůže.



  1. Jak omezím počet řádků vrácených dotazem Oracle po objednání?

  2. Proč je důležité omezit přístup uživatelů k vaší databázi

  3. Amazon EC2, mysql se ruší, protože InnoDB:mmap (x bajtů) se nezdařilo; chyba 12

  4. Zahrnout názvy sloupců do výsledků dotazu SQLite