Fonction MySQL DENSE_RANK

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 clause FROM en partitions. La fonction DENSE_RANK() est appliquée à chaque partition.
  • Deuxièmement, la clause ORDER BY spécifie l’ordre des rangs dans chaque partition sur laquelle la fonction DENSE_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

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.

table des ventes

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 :

MySQL DENSE_RANK - Attribuer un rang aux employés de vente

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 clause ORDER 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

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.