SQL Rang | |
Afficher le rang associé à chaque ligne est une requête courante, mais cette procédure est plus délicate sous SQL. Pour afficher le rang sous SQL, il est nécessaire d’effectuer une jointure réflexive, de lister les résultats dans l’ordre, et de compter le nombre d’enregistrements énumérés (y compris) devant l’enregistrement de votre choix. Utilisons un exemple pour illustrer. Supposons que nous avons la table suivante Table Total_Sales
il faut saisir : SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank
FROM Total_Sales a1, Total_Sales a2 WHERE a1.Sales <= a2.Sales OR (a1.Sales = a2.Sales AND a1.Name = a2.Name) GROUP BY a1.Name, a1.Sales ORDER BY a1.Sales DESC, a1.Name DESC; Résultat:
Concentrons-nous sur la clause WHERE. La première partie de la clause, (a1.Sales <= a2.Sales), nous permet de ne pas compter le nombre d’occurrences où la valeur de la colonne Sales est inférieure ou égale à elle-même. Si la colonne Sales ne contient pas de doublons, cette partie de la clause WHERE serait en elle-même suffisante pour générer le rang correct. La deuxième partie de la clause, (a1.Sales = a2.Sales and a1.Name = a2.Name), garantit qu’en présence de doublons dans la colonne Sales, chaque valeur obtiendrait le rang correct.
Copyright © 2024 1keydata.com Tous droits réservés |