JeuWeb - Crée ton jeu par navigateur
Calculer position dans un classement en SQL? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Calculer position dans un classement en SQL? (/showthread.php?tid=7796)



Calculer position dans un classement en SQL? - Argorate - 12-04-2017

Bonjour,

imaginons une table foo, avec un champs bar qui contient des integers quelconque.

Je peux obtenir facilement le classement en faisant SELECT * FROM foo ORDER BY bar ASC par exemple.

Ma question c'est comment récupérer pour une instance donné, disons qu'il y ait un autre champs "name", et que l'un d'eux soit baz, si je veux savoir le positionnement de baz dans le classement sans post traitement SQL, est-ce que c'est possible? si oui, comment?

merci


RE: Calculer position dans un classement en SQL? - Xenos - 12-04-2017


SELECT * FROM foo WHERE name='baz' ORDER BY bar ASC

?! Ou j'ai pas compris la question?

Et la position directe d'un mec

SELECT COUNT(*)+1 AS position
FROM foo AS f
WHERE f.bar > (SELECT bar FROM foo WHERE id = ?) [AND f.name = 'baz']
Après, faut voir les placements ex-aequo.


RE: Calculer position dans un classement en SQL? - Argorate - 12-04-2017

Dans mon cas il n'y a pas de placement ex-aequo. C'est bon la logique est là, c'est tout bête...
J'étais coincé sur le fait de "parcourir" la liste trié pour trouver le bon, alors qu'il suffit de compter ceux qui ont plus.
merci.