使用Django的ORM能否计算累积(运行)总和?考虑以下模型:
class AModel(models.Model):
a_number = models.IntegerField()
给定一组数据,其中a_number = 1
。假设数据库中有一个数字大于1的AModel
实例,它们都满足a_number=1
。我希望能够返回以下内容:
AModel.objects.annotate(cumsum=??).values('id', 'cumsum').order_by('id')
>>> ({id: 1, cumsum: 1}, {id: 2, cumsum: 2}, ... {id: N, cumsum: N})
理想情况下,我希望能够限制/过滤累加和。因此,在上面的例子中,我希望将结果限制为 cumsum <= 2
。
我相信在postgresql中可以使用窗口函数实现累加和。如何将其转换为ORM?