Résumé : dans ce tutoriel, vous apprendrez à connaître la fonction MySQL DENSE_RANK()
et comment l’appliquer pour trouver le rang d’une ligne dans une partition ou un ensemble de résultats.
Introduction à la fonction MySQL DENSE_RANK
La DENSE_RANK()
est une fonction fenêtre qui attribue un rang à chaque ligne dans une partition ou un ensemble de résultats sans aucun écart dans les valeurs de rang.
Le rang d’une ligne est augmenté de un à partir du nombre de valeurs de rang distinctes qui précèdent la ligne.
La syntaxe de la fonction DENSE_RANK()
est la suivante :
Code language: SQL (Structured Query Language) (sql)
Dans cette syntaxe :
- D’abord, la clause
PARTITION BY
divise les ensembles de résultats produits par la clauseFROM
en partitions. La fonctionDENSE_RANK()
est appliquée à chaque partition. - Deuxièmement, la clause
ORDER BY
spécifie l’ordre des rangs dans chaque partition sur laquelle la fonctionDENSE_RANK()
opère.
Si une partition a deux rangs ou plus avec la même valeur de rang, chacun de ces rangs se verra attribuer le même rang.
Contrairement à la fonction RANK()
, la fonction DENSE_RANK()
renvoie toujours des valeurs de rang consécutives.
Supposons que nous ayons un tableau t
avec quelques échantillons de données comme suit :
Code language: SQL (Structured Query Language) (sql)
L’instruction suivante utilise la fonction DENSE_RANK()
pour attribuer un rang à chaque ligne :
Code language: SQL (Structured Query Language) (sql)
Voici la sortie :
Exemple de la fonction DENSE_RANK() de MySQL
Nous utiliserons la table sales
créée dans le tutoriel de la fonction fenêtre pour la démonstration.
L’instruction suivante utilise la fonction DENSE_RANK()
pour classer les employés des ventes par montant de vente.
Code language: SQL (Structured Query Language) (sql)
La sortie est la suivante :
Dans cet exemple :
- Premièrement, la clause
PARTITION BY
a divisé les ensembles de résultats en partitions en utilisant l’année fiscale. - Deuxièmement, la clause
ORDER BY
a spécifié l’ordre des employés commerciaux par les ventes en ordre décroissant. - Troisièmement, la fonction
DENSE_RANK()
est appliquée à chaque partition avec l’ordre des lignes spécifié par la clauseORDER BY
.
Dans ce tutoriel, vous avez appris à utiliser la fonction MySQL DENSE_RANK()
pour classer les rangs dans chaque partition d’un ensemble de résultats.
- Ce tutoriel vous a-t-il été utile ?
- OuiNon
.