Partager via


percent_rankFonction de fenêtre de classement

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

Calcule le classement en pourcentage d’une valeur au sein de la partition.

Syntaxe

percent_rank()

Arguments

La fonction n’utilise aucun argument

Retours

Une valeur DOUBLE.

La fonction est définie comme le rang dans la fenêtre, moins un, divisé par le nombre de lignes dans la fenêtre, moins 1. S’il n’y a qu’une seule ligne dans la fenêtre, le rang est 0.

En tant qu’expression, la sémantique peut être exprimée comme suit :

nvl((rank() OVER(PARTITION BY p ORDER BY o) - 1) / nullif(count(1) OVER(PARTITION BY p) -1), 0), 0)

Cette fonction est similaire mais pas identique à la fonction de fenêtre analytique cume_dist.

Vous devez inclure la ORDER BYclause dans la spécification de la fenêtre.

Exemples

> SELECT a, b, percent_rank(b) OVER (PARTITION BY a ORDER BY b)
    FROM VALUES ('A1', 2), ('A1', 1), ('A1', 3), ('A1', 6), ('A1', 7), ('A1', 7), ('A2', 3), ('A1', 1) tab(a, b)
 A1 1  0.0
 A1 1  0.0
 A1 2  0.3333333333333333
 A1 3  0.5
 A1 6  0.6666666666666666
 A1 7  0.8333333333333334
 A1 7  0.8333333333333334
 A2 3  0.0