Compartilhar via


função de janela de classificação percent_rank

Aplica-se a: marca de seleção positiva SQL do Databricks marca de seleção positiva Runtime do Databricks

Computa a classificação percentual de um valor dentro da partição.

Sintaxe

percent_rank()

Argumentos

A função não usa argumentos

Retornos

Um DOUBLE.

A função é definida como a classificação dentro da janela menos uma dividida pelo número de linhas dentro da janela menos 1. Se houver apenas uma linha na janela, a classificação será 0.

Como uma expressão, a semântica pode ser expressa como:

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

Essa função é semelhante, mas não a mesma, que a função da janela analítica cume_dist.

Você deve incluir a cláusula ORDER BY na especificação da janela.

Exemplos

> 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