es = Employee.objects.filter(a few filters).aggregate(Max('Age'))
该查询会给我最老的员工,所以我也想知道与该行相关的其他信息,例如id。Django:从聚合查询中获取其他字段的值
我该如何做到这一点?谢谢。
es = Employee.objects.filter(a few filters).aggregate(Max('Age'))
该查询会给我最老的员工,所以我也想知道与该行相关的其他信息,例如id。Django:从聚合查询中获取其他字段的值
我该如何做到这一点?谢谢。
你并不需要聚集你只需要通过降订购中世纪查询设置
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
感谢您的回答,但我将不得不使用汇总函数 – user469652 2011-04-27 07:02:24
无论如何,最后,通过使用order_by -_-!解决了问题。谢谢。 – user469652 2011-04-27 12:15:21
使用annotate()
而不是aggregate()
。
你可以在你的问题更精确?混合id(主键)和聚合似乎是矛盾的(例如几个员工可能有相同的最大('年龄') – VGE 2011-04-27 09:52:32