Função de janela CUME_DIST - Amazon Redshift

Função de janela CUME_DIST

Calcula a distribuição cumulativa de um valor em uma janela ou partição. Assumindo uma ordem ascendente, a distribuição cumulativa é determinada usando esta fórmula:

count of rows with values <= x / count of rows in the window or partition

onde x é igual ao valor na linha atual da coluna especificada na cláusula ORDER BY. O seguinte conjunto de dados ilustra O uso desta fórmula:

Row# Value Calculation CUME_DIST 1 2500 (1)/(5) 0.2 2 2600 (2)/(5) 0.4 3 2800 (3)/(5) 0.6 4 2900 (4)/(5) 0.8 5 3100 (5)/(5) 1.0

O intervalo de valor de retorno é >0 a 1, inclusive.

Sintaxe

CUME_DIST () OVER ( [ PARTITION BY partition_expression ] [ ORDER BY order_list ] )

Argumentos

OVER

Uma cláusula que especifica o particionamento da janela. A cláusula OVER não pode conter uma especificação de quadro da janela.

PARTITION BY partition_expression

Opcional. Uma expressão que define o intervalo de registros para cada grupo na cláusula OVER.

ORDER BY order_list

A expressão na qual calcular a distribuição cumulativa. A expressão deve ter um tipo de dados numérico ou ser implicitamente conversível para um. Se ORDER BY for omitida, o valor de retorno será 1 para todas as linhas.

Se ORDER BY não produzir uma ordem única, a ordem das linhas não é determinística. Para obter mais informações, consulte Ordenação exclusiva de dados para funções da janela.

Tipo de retorno

FLOAT8

Exemplos

O seguinte exemplo calcula a distribuição cumulativa da quantidade para cada vendedor:

select sellerid, qty, cume_dist() over (partition by sellerid order by qty) from winsales; sellerid qty cume_dist -------------------------------------------------- 1 10.00 0.33 1 10.64 0.67 1 30.37 1 3 10.04 0.25 3 15.15 0.5 3 20.75 0.75 3 30.55 1 2 20.09 0.5 2 20.12 1 4 10.12 0.5 4 40.23 1

Para uma descrição da tabela WINSALES, consulte Amostra de tabela para exemplos de funções de janela.