如何在子查询Django

时间:2018-07-19 19:56:15

标签: python sql django

我的问题是我想对以前注释过的字段进行分组和求和,但是我做不到。

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

我读到可以使用子查询来实现,但是我不知道该怎么做。如果有人有其他解决方案就足够了。

谢谢

0 个答案:

没有答案