Resumo : neste tutorial, você aprenderá como usar a CUME_DIST()
função SQLite para calcular a distribuição cumulativa de um valor dentro de uma janela ou partição.
Introdução à CUME_DIST()
função SQLite
É CUME_DIST()
uma função de janela que calcula a distribuição cumulativa de valor dentro de uma janela ou partição.
O seguinte mostra a sintaxe da CUME_DIST()
função:
CUME_DIST()
OVER (
[PARTITION BY partition_expression]
[ORDER BY order_list]
)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
- A
PARTITION BY
cláusula especifica como as linhas são agrupadas em partições às quais aCUME_DIST()
função se aplica. Se você pular aPARTITION BY
cláusula, a função tratará todo o conjunto de resultados como uma única partição. - A
ORDER BY
cláusula especifica a ordem das linhas em cada partição à qual aCUME_DIST()
função se aplica. Se você omitir aORDER BY
cláusula, a função retornará 1 para todas as linhas.
Suponha N
que seja o valor da linha atual da coluna especificada na ORDER BY
cláusula e a ordem das linhas seja de menor para maior, a distribuição cumulativa de c é calculada usando a seguinte fórmula:
The number of rows with values <= N / The number of rows in the window or partition
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O valor de retorno da CUME_DIST()
função é maior que 0 e menor ou igual a 1:
0 < CUME_DIST() <= 1
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
As linhas com os mesmos valores recebem o mesmo resultado.
CUME_DIST()
Exemplo de função SQLite
Primeiro, crie uma nova tabela com o nome CumeDistDemo
da demonstração:
CREATE TABLE CumeDistDemo(
Id INTEGER PRIMARY KEY,
value INT
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, insira algumas linhas na CumeDistDemo
tabela:
INSERT INTO CumeDistDemo(value)
VALUES(1000),(1200),(1200),(1400),(2000);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, consulte os dados da CumeDistDemo
tabela:
SELECT
Id,
Value
FROM
CumeDistDemo;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Quarto, calcule a distribuição cumulativa dos valores da CumeDistDemo
tabela:
SELECT
Value,
CUME_DIST()
OVER (
ORDER BY value
) CumulativeDistribution
FROM
CumeDistDemo;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
Como ignoramos a PARTITION BY
cláusula, a função tratou todo o conjunto de resultados como uma única partição. Portanto, o número de linhas a serem avaliadas é 5.
Para o ID de linha 1, o número de linhas com o valor <= 1000 é 1, portanto, a distribuição cumulativa de 1000 é 1/5 = 0,2
Para o ID de linha 2, o número de linhas com o valor <= 1200 é 3, portanto, a distribuição cumulativa de 1200 é 3/5 = 0,6.
A mesma lógica é aplicada à linha com id 3, 4 e 5.
Neste tutorial, você aprendeu como calcular a distribuição cumulativa de um valor em um conjunto de valores usando a CUME_DIST()
função SQLite.