我的问题是我想对以前注释过的字段进行分组和求和,但是我做不到。
from django.db.models import Max, Sum
queryset = MyModel.objects.values('period', 'cell').annotate(x=Max('total')) # work
result = queryset.values('period').annotate(result=Sum('x')) # expected, not work
数据示例:
period cell total
1 2 40
1 2 41
2 3 23
1 4 44
第一个查询
queryset = MyModel.objects.values('period', 'cell').annotate(x=Max('total'))
选择 “ appname_mymodel”。“句点”, “ appname_mymodel”。“单元格”, MAX(“ appname_mymodel”。“ total”)AS“ x” 来自“ appname_mymodel” GROUP BY“ appname_mymodel”。“句号”, “ appname_mymodel”。“单元格”
period cell x
1 2 41
2 3 23
1 4 44
我需要的最终结果
EDIT :添加SQL
从()中选择U0。“句点”,SUM(U0。“ x”) 选择 “ appname_mymodel”。“句点”,“ appname_mymodel”。“单元格”, MAX(“ appname_mymodel”。“ total”)AS“ x” from“ appname_mymodel” GROUP BY“ appname_mymodel” ..“ period”,“ appname_mymodel”。“ cell”)作为U0 按U0分组。“句点”
period result
1 85
2 23
我可以使用SQL获取数据,但是我需要使用 Django ORM
我读到可以使用子查询来实现,但是我不知道该怎么做。如果有人有其他解决方案就足够了。
谢谢