Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django日期范围内的总和平均值_Python_Django_Postgresql - Fatal编程技术网

Python Django日期范围内的总和平均值

Python Django日期范围内的总和平均值,python,django,postgresql,Python,Django,Postgresql,我试图在Django中构造一个查询,该查询将在一定时间范围内获得的平均值(即平均值)相加 以下是相关的Django模型: class Data(models.Model): class Meta: verbose_name_plural = "Data" site = models.ForeignKey(Site) created_on = models.DateTimeField(auto_created=True) reported_on

我试图在Django中构造一个查询,该查询将在一定时间范围内获得的平均值(即平均值)相加

以下是相关的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)
在我的查询中,我试图在一定时间范围内平均站点的数据,然后对每个时间范围内的平均值求和。这是我到目前为止的查询,我相信它只得到了一系列时间内所有站点数据的平均值

        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')
你知道我该怎么做吗?我在Postgres中使用Django


谢谢

如果在.values()子句中添加“site”,如下所示:

.values('date_slice', 'site')

并删除order_by,这将导致“created_on”字段被添加到生成的SQL GROUP by中,您应该获得每个slice+站点的两个测量值的平均值。然后,您可以将这些值相加,得到所有站点的总数。

如果您将“站点”添加到.values()子句中,如下所示:

.values('date_slice', 'site')
并删除order_by,这将导致“created_on”字段被添加到生成的SQL GROUP by中,您应该获得每个slice+站点的两个测量值的平均值。然后,您可以将这些值相加,得到所有站点的总数