SQLite NTILE

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

You might also like

Deixe uma resposta

O seu endereço de email não será publicado.