Comment trouver le rang

Fermé
Ibnomar - 26 déc. 2019 à 09:22
 Ibnomar - 26 déc. 2019 à 12:45
Bonjour ,
J’ai une table avec les notes de mes élèves comme
Id_el Note
1 18
2. 10
3 19
et j’aimerais avoir le rang de chaque élève en fonction de sa notes. Comme 19 (la note la plus élèves ) ->1er, 18(la suivante ) ->2eme, 10(le dernière de la classe )->3 ; en gardant en même temps l’ordre alphabétique de mes Noms. Aidez-moi à le faire s’il vous plaît ?
Merci d’avance

1 réponse

jordane45 Messages postés 38178 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 mai 2024 4 667
26 déc. 2019 à 09:39
Bonjour,

ça dépend de ta version de mysql.
Si elle est >= 8 , tu peux utiliser
https://www.mysqltutorial.org/mysql-window-functions/mysql-rank-function/

Sinon, faudra passer par une sous-requête du genre
SELECT  @rank := @rank + 1 AS 'Rank', Id_el, Note
    FROM  tatable
    JOIN  ( SELECT  @rank := 0 ) AS init
    ORDER BY  Note DESC;


Et si tu veux, en plus, avoir un ordre alphabétique sur le nom de te tes élèves, il te faudra faire une jointure avec la table qui contient leur nom et refaire un order by dessus.



0
Waou ! Ca marche vraiment. Merci beaucoup. Étant que débutant , c’est ma première fois de voir @ dans une requête. As tu des liens de tutoriels ou je pourrai lire davantage la dessus ? Vraiment merci. Problème résolu
0