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
36046
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 août 2022
- 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
36046
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 août 2022
358
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
36046
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 août 2022
358
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