Comment trouver le rang

Ibnomar -  
 Ibnomar -
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
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Ibnomar
 
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