从Dima
Kudosh的答案中并基于https://stackoverflow.com/a/5700744/2240489,我必须执行以下 *** 作:我
PARTITIONBY在sql中删除了对的引用,并替换为
ORDER BY结果。
AModel.objects.annotate( cumsum=Func( Sum('a_number'), template='%(expressions)s OVER (ORDER BY %(order_by)s)', order_by="id" ) ).values('id', 'cumsum').order_by('id', 'cumsum')
这给出了以下sql:
SELECt "amodel"."id",SUM("amodel"."a_number") OVER (ORDER BY id) AS "cumsum" FROM "amodel" GROUP BY "amodel"."id" ORDER BY "amodel"."id" ASC, "cumsum" ASC
Dima Kudosh的答案不是对结果求和,但以上结果可以。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)