如何在Django中使用annotate作为group by时获取其他列?

时间:2013-02-01 19:29:10

标签: python django django-models group-by aggregate-functions

我想对一个班级的学生进行分组,并获得最高分和最高分的学生姓名。

我想使用Django Models复制这个SQL查询:

SELECT class_name, MAX(grade), name FROM students ORDER BY grade DESC GROUP BY class_name

使用此代码,我可以获得class_name和max(grade),但似乎无法获得名称。

entity.objects.values('class_name').order_by('-grade').annotate(Max('grade'))

显然这个查询根据SQL Server是错误的,但对MySQL来说没问题,它会返回第一行的名称,这是我想要的,因为ORDER BY。

有什么想法吗?

0 个答案:

没有答案