Partager via


rankFonction de fenêtre de classement

S’applique à : case marquée oui Databricks SQL case marquée oui Databricks Runtime

Retourne le rang d’une valeur par rapport à toutes les valeurs dans la partition.

Syntaxe

rank()

Arguments

Cette fonction ne prend pas d'arguments.

Retours

INTEGER.

La clause OVER de la fonction de fenêtre doit inclure une clause ORDER BY.

Contrairement à la fonction dense_rank, la fonction rank produira des écarts dans la séquence de classement. Contrairement à row_number, la fonction rank ne rompt pas les liens.

Si l’ordre n’est pas unique, les doublons partagent la même position relative antérieure.

Exemples

> SELECT a,
         b,
         dense_rank() OVER(PARTITION BY a ORDER BY b),
         rank() OVER(PARTITION BY a ORDER BY b),
         row_number() OVER(PARTITION BY a ORDER BY b)
    FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
 A1 1   1   1   1
 A1 1   1   1   2
 A1 2   2   3   3
 A2 3   1   1   1