Forum Clubic

MySQL Group BY et tri spécifique

Bonjour !

Petite question en MySQL, prenons par exemple une table toute bête :
id | nombre1 | nombre2
1 | 8 | 12
2 | 8 | 24
3 | 8 | 6
4 | 9 | 8

Je voudrais sélectionner uniquement la ligne ayant l’id maximum et le même nombre1
Pour l’exemple ca devrait retourner la ligne 3 et la ligne 4 (ligne 3 car c’est celle qui a l’id le plus élevé de celles qui ont le nombre1 = 8, pour la 4 c’est celle qui a l’id le plus élevé des lignes qui ont le nombre1=9).

J’ai tenté un SELECT * FROM table GROUP BY nombre1
Mais ca me retourne la 1ère ligne et la 4ème
si je fais :
SELECT * FROM table GROUP BY nombre1 ORDER BY id DESC
ca change rien
et
SELECT * FROM table GROUP BY nombre1, id DESC
mais ca me retourne tout :confused:

En fait il faudra spécifier un GROUP BY avec un tri spécifique, mais ca marche pas :confused:

je dis peut etre n’importe quoi, mais pourquoi pas essayer:

SELECT * FROM table GROUP BY nombre1, MAX(id)

:neutre:

je ne sais pas si c’est vraiment correct, mais tente toujours :neutre:a

SQL
[color=blue;font-weight:bold]select[/color] * from table where id=([color=blue;font-weight:bold]select[/color] max(id) from table where nombre1 in ([color=blue;font-weight:bold]select[/color] distinct(nombre1) from table))

edit : ptite correction

SQL
[color=blue;font-weight:bold]select[/color] * from table where id in ([color=blue;font-weight:bold]select[/color] max(id) from table where nombre1 in ([color=blue;font-weight:bold]select[/color] distinct(nombre1) from table))

Merci, la dernière requète marche très bien :slight_smile:
Par contre c’est quand même bizarre qu’on ne puisse pas trier un group by avec un champ spécifique oO