Bonjour,
Je cherche à émuler en SQL standard la fonction RANK() de Oracle : cette fonction permet d'afficher le rang de tuples retournés par une requête et ordonnés selon un ORDER BY.
Ex: SELECT nom, age, RANK(OVER ORDER BY age) AS rang FROM personnes;
L'idée serait la suivante : pour chaque tuple t résultat, on compte combien de tuples ont pour valeur d'attribut de tri, une valeur strictement supérieure à celle de t, on ajoute 1 pour obtenir le rang.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 nom age rang ------------------ pierre 45 1 jean 44 2 paul 37 3 christian 37 3 alexandre 35 5
Ex: pour Paul, il y a 2 tuples dont l'attribut age est > à celui du tuple Paul, donc le rang de Paul est 2 + 1 = 3.
Je n'arrive pas à écrire cette requête en SQL standard...
Pourriez-vous m'aider ?
Merci,
Alexandre
Partager