Django:从聚合查询中获取其他字段的值

时间:2011-04-27 06:53:24

标签: django django-models django-orm

es = Employee.objects.filter(a few filters).aggregate(Max('Age'))

该查询将给我最老的员工,所以我也想知道与该行相关的其他一些信息,例如id。

我怎样才能做到这一点?感谢。

2 个答案:

答案 0 :(得分:1)

您不需要汇总,只需按查询集的降序年份排序

 Employee.objects.filter(a few filters).order_by(['-Age'])[0]

会给你最老的

或者,如果您有多个旧项目

 age = None
 for x in Employee.objects.filter(a few filters).order_by(['-Age']):
    if age and age != x.Age:
       break
    age = x.Age 

答案 1 :(得分:0)

使用annotate()代替aggregate()