Jav*_*vad 5 python django postgresql django-orm
我有一个具有以下结构的 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)
Run Code Online (Sandbox Code Playgroud)
我希望Avg每 3 天对对象进行一次聚合函数。
例如,我编写一个查询集,每天或使用类似TruncDay函数的东西进行此聚合。
queryset = BBPerformance.objects.annotate(day=TruncDay('created_at')).values('day').annotate(marketcap_avg=Avg('marketcap_change'),bb_avg=Avg('bb_change')
Run Code Online (Sandbox Code Playgroud)
如何获得 3 天间隔的聚合值的查询集以及该间隔第二天的索引?
我想这在数据库级别是不可能的(Trunc 是数据库级别的函数),因为Postgres和Oracle仅支持月、日、周等。
所以我建议是使用TruncDay然后添加 python 代码将它们按 3 天分组。