我有一个具有以下结构的 Django 模型:
class BBPerformance(models.Model):
marketcap_change = models.FloatField(verbose_name="marketcap change", null=True, blank=True)
bb_change = models.FloatField(verbose_name="bestbuy change", null=True, blank=True)
created_at = models.DateTimeField(verbose_name="created at", auto_now_add=True)
updated_at = models.DateTimeField(verbose_name="updated at", auto_now=True)
我想要一个Avg
每 3 天对对象进行一次聚合函数。
例如,我编写一个查询集,每天执行此聚合或使用类似的内容TruncDay
功能。
queryset = BBPerformance.objects.annotate(day=TruncDay('created_at')).values('day').annotate(marketcap_avg=Avg('marketcap_change'),bb_avg=Avg('bb_change')
如何获得 3 天间隔的聚合值的查询集以及该间隔第二天的索引?
我想这在数据库级别是不可能的(Trunc是数据库级别的函数),因为仅支持月,日,周等Postgres https://www.postgresqltutorial.com/postgresql-date_trunc/#:%7E:text=Introduction%20to%20the%20PostgreSQL%20date_trunc,with%20a%20level%20of%20precision. and Oracle https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/TRUNC-date.html#GUID-BC82227A-2698-4EC8-8C1A-ABECC64B0E79.
所以我建议是使用TruncDay
然后添加 python 代码以按 3 天进行分组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)