Requête max avec group by

cs_nahoulaa Messages postés 43 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 7 octobre 2015 - 27 févr. 2014 à 11:03
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 27 févr. 2014 à 12:15
Bonjour, j'ai une table de la forme

groupe name1 name2 score
1 a1 b1 7
1 a2 b2 12
2 c1 b3 4
2 c2 b4 9
2 c3 b5 20
3 d1 b6 22
3 d2 b7 2
Je souhaite retourner, pour chaque groupe, les valeurs de name1 et name2 qui maximisent le score
le résultat attendu est:
groupe name1 name2 score
1 a2 b2 12
2 c3 b5 20
3 d1 b6 22
Merci!

3 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
27 févr. 2014 à 11:36
Bonjour,

Aucune difficulté à cela me semble-t'il...
Qu'as tu essayé ?
Quel souci rencontres-tu ?


0
cs_nahoulaa Messages postés 43 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 7 octobre 2015
27 févr. 2014 à 11:42
Bein en faisant
select groupe, name1, name2,max(score) group by groupe 
ça me retourne le maximum de score pour chaque groupe mais PAS leurs correspondants name1 et name2 mais par contre les premiers rencontrés!!
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
27 févr. 2014 à 12:15
select distinct t1.groupe,t1.name1,t1.name2,t1.score 
from tbl1 t1
     ,(SELECT t2.id,max(t2.score) as maxScore from
        tbl1 t2
        group by groupe) MX
Where t1.score=MX.maxScore

0
Rejoignez-nous