J'essaie de faire une requête et j'ai déjà recherché une réponse sur stackof mais je n'en ai pas trouvé de correspondant à mes besoins. J'ai une table nommée player dans laquelle il y a deux colonnes, "pseudo" et "score". J'utilise cette requête pour obtenir les 5 meilleurs joueurs:Sélectionnez le classement d'une requête sql de lecteur spécifique
SELECT nickname, score
FROM player
ORDER BY score DESC LIMIT 5;
et moi avons eu ce que la réponse:
nickname - score:
zod - 30
ciao - 20
jiji - 20
mayina - 20
jon - 0.
Maintenant, je voudrais avoir le rang d'un seul joueur, nous allons dites "jiji" et obtenez 3 en conséquence, parce que c'est le troisième résultat de la liste.
J'ai essayé beaucoup de questions comme
SELECT COUNT(*) AS rank
FROM player
WHERE score >= (SELECT score FROM player WHERE nickname = 'jiji')
mais ils reviennent toujours 4 pour « Jiji » ou « ciao », qui est le rang du dernier joueur qui obtient 20 le score dans ce tableau.
Comment puis-je avoir 3 pour "jiji" à la place? Merci beaucoup.
Soyez prudent lorsque vous étiquetez vos questions. C'est clairement mysql et pas sql-server. Ce ne sont pas les mêmes choses. –
Vous devez utiliser la fonction analytique pour résoudre votre problème – Teja
regardez ici: http://stackoverflow.com/questions/2520357/mysql-get-row-number-on-select – Galz