Resumo: neste tutorial, você irá aprender como usar a função SQLite NTILE()
para dividir um resultado definido em um número de baldes e atribuir um número de balde a cada linha.
Introduction to SQLite NTILE() function
SQLite NTILE()
function is a window function that divides an ordered result set into a number of buckets by a specified expression and assigns an appropriate bucket number to each row.
a seguir mostra a sintaxe da função NTILE()
:
nesta sintaxe:
expression
The expression
can be a literal positive integer or any valid expression that resolves to a positive integer.
a função NTILE()
atribui números de 1 até ao valor de expression
a cada linha. O número de linhas em baldes pode diferir no máximo 1. O restante do número de linhas divididas por Baldes é atribuído a cada balde, começando com bucket 1.Por exemplo, se tiver 10 linhas e 4 baldes. Cada balde terá 2 filas. O restante de 10/4 é 2. Assim, o primeiro balde terá 2 + 1 = 3 linhas, o segundo balde também terá 3 linhas.
a figura seguinte ilustra a ideia:
se o valor da expressão for maior que o número de linhas, então a função NTILE()
preencherá o número de baldes igual ao número de linhas. Por isso, os baldes restantes estarão vazios.
por exemplo, se tiver 10 linhas e 11 Baldes, a cada linha será atribuído um número de balde de 1 a 10. O 11º balde não terá fila.
note que não pode usar uma subquery ou uma função de janela na expression
.
partição por
a cláusula PARTITION BY
divide o resultado em partições às quais se aplica a função NTILE
.
ORDER BY
the ORDER BY
clause specifies the order of rows in each partition to which the NTILE()
applies.
SQLite NTILE() exemplo de função
usaremos a tabela de faixas da base de dados de amostras para demonstrar a função NTILE()
:
usando a função NTILE SQLite() com ordem por exemplo
a seguinte declaração usa a função NTILE()
para dividir em 4 baldes os valores na coluna Milliseconds
da tabela tracks
do álbum 1.
a coluna Milliseconds
tem 10 valores neste álbum, de modo que os dois valores extras, que é o restante de 10/4, são distribuídos para baldes 1 e 2, que, portanto, têm mais valor do que os baldes 3 ou 4.
aqui está a produção:
Usando SQLite NTILE() função de PARTIÇÃO cláusula POR exemplo,
a instrução A seguir usa o NTILE()
função para dividir as faixas de cada álbum em 3 baldes pelos valores em Bytes
coluna:
a imagem A seguir mostra a saída:
neste exemplo, o PARTITION BY
cláusula distribuídas as linhas em partições ou discos. A cláusula ORDER BY
classificou as faixas em cada álbum pelos seus tamanhos em bytes. And the NTILE()
function assigned a bucket number to each track and reset the bucket number for each album.
neste tutorial, você aprendeu a usar a função SQLite NTILE()
para dividir um resultado definido em um número de baldes e atribuir um número de balde para cada linha.
- este tutorial foi útil ?
- YesNo