gpt4 book ai didi

Django 求和另一列中 'group by' 之后的列的值

转载 作者:行者123 更新时间:2023-12-05 00:54:42 25 4
gpt4 key购买 nike

我在这里和 django documentation 中找到了一些解决方案,但我无法按照我想要的方式进行一个查询。

我有以下模型:

class Inventory(models.Model):
blindid = models.CharField(max_length=20)
massug = models.IntegerField()

我想计算 Blind_ID 的数量,然后将它们分组后的质量相加。

我目前的 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

最佳答案

尝试这个:

samples = Inventory.objects.values('blindid').annotate(aliquots=Count('blindid'), total=Sum('massug'))

关于Django 求和另一列中 'group by' 之后的列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39595618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com