是否可以使用django的orm来计算累计(运行)总和?请看下面的模式:与django orm和postgresql的累计(运行)总和
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的?
我不明白。什么是cumsum?并且只有一条记录的id = 1 –
cumsum ==累计和,显然这是针对多个记录 - 编辑得更清楚,因此数据集的大小大于1。 – wrdeman
我不认为你可以用ORM做它...用python代替 –