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
這很好,但如果我想要取代庫存對象實例而不是字典呢? –