2011-04-27 74 views
0
es = Employee.objects.filter(a few filters).aggregate(Max('Age')) 

该查询会给我最老的员工,所以我也想知道与该行相关的其他信息,例如id。Django:从聚合查询中获取其他字段的值

我该如何做到这一点?谢谢。

+0

你可以在你的问题更精确?混合id(主键)和聚合似乎是矛盾的(例如几个员工可能有相同的最大('年龄') – VGE 2011-04-27 09:52:32

回答

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 
+0

感谢您的回答,但我将不得不使用汇总函数 – user469652 2011-04-27 07:02:24

+0

无论如何,最后,通过使用order_by -_-!解决了问题。谢谢。 – user469652 2011-04-27 12:15:21

0

使用annotate()而不是aggregate()