|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Concepteur Jeux Vidéos Inscription : avril 2011 Messages : 12 ![]() |
Bonjour
J'ai une petite table "score" avec des noms et des scores name race_id time Kristof 5 20.999 Kristof 5 88474 Kristof 5 20.9182 Kristof 5 20.0527 Kristof 5 20.2781 Titus 5 21.1892 Titus 5 19.5876 Titus 5 20.1587 J'aimerai faire une liste des meilleurs temps, en enlevant les noms en double. J'aimerai donc arriver au résultat: Titus 19.5876 Kristof 20.0527 J'arrive a classer la table par les temps, j'arrive a extraire les nom distincts. Mais pas les deux en même temps. J'ai testé la fonction DISTINCT et DISTINCT ON Mon meilleur essai a été: Code :
SELECT DISTINCT ON (name) * FROM ( SELECT * FROM score ORDER BY time ASC) AS foo "Kristof" : "88474" "Titus" : "20.1587" Je continue a fouiller, mais si quelqu'un a une idée, ou des conseils, je suis preneur. Bon week end. |
|
|
00
|
|
|
#2 | ||
![]() ![]() Inscription : octobre 2008 Messages : 1 505 ![]() |
Si on suppose que c'est le temps le plus faible par joueur qui est cherché, le plus simple est de faire
Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Concepteur Jeux Vidéos Inscription : avril 2011 Messages : 12 ![]() |
En effet, c'est bien cela que je veux.
Je n'avais pas compris qu'on pouvait ajouter des traitements juste après le select. Merci beaucoup. J'essaierai cela lundi.
|
|
|
00
|
|
|
#4 | |
|
Invité de passage
![]() Concepteur Jeux Vidéos Inscription : avril 2011 Messages : 12 ![]() |
Citation:
Merci merci. |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Concepteur Jeux Vidéos Inscription : avril 2011 Messages : 12 ![]() |
En fait, il manquait encore un tri. Je viens de mieux comprendre.
Voici la requête finale: Code :
SELECT userid, min(time) AS mintime FROM scores WHERE race_id=%d GROUP BY userid ORDER BY mintime ASC
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com