Ram*_*hum 8 python sql django orm
我想在Django中做一个GROUP BY.我在Stack Overflow上看到了建议:
Member.objects.values('designation').annotate(dcount=Count('designation'))
Run Code Online (Sandbox Code Playgroud)
这是有效的,但问题是你得到一个ValuesQuerySet而不是一个QuerySet,所以查询集不是给我完整的对象,而只是给我特定的字段.我想得到完整的物品.
当然,既然我们要分组,我们需要选择从每个组中取出哪个对象; 我想要一种方法来指定对象(例如,在某个字段中选择具有最大值的那个,等等)
有谁知道我怎么做到这一点?
听起来您不一定需要 GROUP BY,而只是想将您的选择限制为每个字段的一项(例如,某个字段的 MAX 值)。
您可以尝试按字段获取不同的对象,例如
在 Postgres 中
Member.objects.order_by('designation').distinct('designation')
在任何其他数据库中
Member.objects.distinct('designation')
https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.distinct