SQLite CUME_DIST

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 BYcláusula especifica como as linhas são agrupadas em partições às quais a CUME_DIST()função se aplica. Se você pular a PARTITION BYcláusula, a função tratará todo o conjunto de resultados como uma única partição.
  • A ORDER BYcláusula especifica a ordem das linhas em cada partição à qual a CUME_DIST()função se aplica. Se você omitir a ORDER BYcláusula, a função retornará 1 para todas as linhas.

Suponha Nque seja o valor da linha atual da coluna especificada na ORDER BYclá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 CumeDistDemoda 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 CumeDistDemotabela:

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 CumeDistDemotabela:

SELECT 
	Id,
	Value 
FROM 
	CumeDistDemo;
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Tabela de amostra SQLite CUME_DIST

Quarto, calcule a distribuição cumulativa dos valores da CumeDistDemotabela:

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:

Exemplo de função SQLite CUME_DIST

Como ignoramos a PARTITION BYclá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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *