sql >> Database teknologi >  >> RDS >> Mysql

Django-grupper efter datoer og SUM-værdier

Hmm du bruger Count , skal du bruge Sum , og values() bestemmer, hvad der skal ind i GROUP BY så du bør bruge values('datetime') kun. Dit forespørgselssæt skal være noget som dette:

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'))

selvom jeg ikke er så sikker på rækkefølgen af ​​filter() , så det kunne være dette:

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

Så vil du vel prøve begge dele. Hvis du vil se den rå forespørgsel for disse forespørgselssæt, skal du bruge Queryset.query :

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

Så du kan sikre dig, at du får den rigtige forespørgsel.

Håber det hjælper.



  1. Hvordan installerer jeg Rails MySQL-adapteren?

  2. Hvornår har Postgres kolonne- eller tabelnavne brug for anførselstegn, og hvornår behøver de ikke?

  3. Kassér millisekunddelen fra tidsstemplet

  4. Oracle Connection Pool Class