3
我在这里和django documentation中发现了一些解决方案,但我无法设法使一个查询以我想要的方式工作。Django在'group by'之后的列的另一列的总和值
我有以下型号:
class Inventory(models.Model):
blindid = models.CharField(max_length=20)
massug = models.IntegerField()
我想算Blind_ID的号码,然后求和massug他们进行分组后。
我目前Django的ORM
samples = Inventory.objects.values('blindid', 'massug').annotate(aliquots=Count('blindid'), total=Sum('massug'))
它不能正确计算(它显示只有一个),因此这不是正确的总结。它似乎只是得到第一个结果......我也尝试使用Count('blindid', distinct=True)
和Count('blindid', distinct=False)
以及。
这是使用samples.query
的查询结果。 Django是由两列编组......
SELECT "inventory"."blindid", "inventory"."massug", COUNT("inventory"."blindid") AS "aliquots", SUM("inventory"."massug") AS "total" FROM "inventory" GROUP BY "inventory"."blindid", "inventory"."massug"
这应该是原始的SQL
SELECT blindid,
Count(blindid) AS aliquots,
Sum(massug) AS total
FROM inventory
GROUP BY blindid
它的工作。我不知道我可以选择注释字段中以前不在查询中的列。太好了,谢谢! – mk2
这很好,但如果我想要取代库存对象实例而不是字典呢? –