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

Cette requête va me donner l'employé le plus âgé, donc je veux aussi connaître d'autres informations associées à cette ligne, par exemple, l'ID.Django: Obtenir la valeur d'un autre champ à partir d'une requête d'agrégation

Comment puis-je accomplir cela? Merci.

+0

Pourriez-vous être plus précis dans votre question? L'ID de mélange (clé primaire) et l'agrégat semblent être contradictoires (exemple plusieurs employés peuvent avoir le même Max ('Age') – VGE

Répondre

1

Vous n'avez pas besoin de vous regrouper seulement commander en descendant Age votre requête réglage

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

vous donnera le plus ancien

Ou si vous avez plusieurs éléments anciens

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

Merci pour votre réponse, mais je devrai utiliser – user469652

+0

Enfin, le problème a été résolu en utilisant order_by -_-! Merci. – user469652

0

Utilisez annotate() au lieu de aggregate().

Questions connexes