Ich versuche, eine Abfrage in Django zu erstellen, die gemittelte Mittelwerte (d. H. Gemittelt) über einen bestimmten Zeitraum summiert.Summenmittel über Datumsbereiche in Django
ist hier das entsprechende Modell Django:
class Data(models.Model):
class Meta:
verbose_name_plural = "Data"
site = models.ForeignKey(Site)
created_on = models.DateTimeField(auto_created=True)
reported_on = models.DateTimeField(null=True, blank=True)
baseline_power_kw = models.FloatField('Baseline Power (kw)', blank=True, null=True)
measured_power_kw = models.FloatField('Measured Power (kw)', blank=True, null=True)
In meiner Anfrage, ich versuche, eine Reihe von Zeiten durchschnittlichen Websites Daten über und dann diese Mittelwerte für jeden Zeitbereich summieren. Hier ist die Abfrage, die ich bisher habe, die ich glaube, dass nur der Durchschnitt der Daten aller Seiten über eine Reihe von Zeiten erhalten wird.
t_data = Data.objects.filter(site__in=sites) \
.filter(created_on__range=(start, end)) \
.extra(select={'date_slice': "trunc(extract(epoch from created_on)/'60')"}) \
.values('date_slice') \
.annotate(avg_baseline_power_kw=Avg('baseline_power_kw'),
avg_measured_power_kw=Avg('measured_power_kw'),
time=Min('created_on')) \
.order_by('-created_on')
Wissen Sie, wie ich fortfahren kann? Ich benutze Django mit Postgres.
Danke!