Categorias:

Funções de janela (relacionada à classificação)

NTILE

Divide um conjunto de dados ordenado igualmente entre o número de buckets especificado por constant_value. Os buckets são numerados sequencialmente de 1 até constant_value.

Sintaxe

NTILE( <constant_value> ) OVER ( [ PARTITION BY <expr1> ] ORDER BY <expr2> [ { ASC | DESC } ] )
Copy

Argumentos

constant_value

O número desejado de buckets; deve ser um valor inteiro positivo.

expr1

Se você deseja dividir os dados em grupos, especifique o critério (geralmente uma coluna) para realização da divisão. Por exemplo, você pode dividir por província.

expr2

A expressão (geralmente uma coluna) pela qual se ordenam as linhas na janela. Por exemplo, você pode ordenar por carimbo de data/hora.

Notas de uso

Se os dados forem particionados, então os dados são divididos em buckets igualmente dentro de cada partição. Por exemplo, se o número de baldes for 3, e se os dados forem divididos por província, então aproximadamente 1/3 das linhas de cada província são colocadas em cada bucket.

Se a instrução tiver uma cláusula ORDER BY para a saída, assim como uma cláusula ORDER BY para a função NTILE, as duas funcionarão independentemente; a ORDER BY para a função NTILE influencia quais linhas são atribuídas a cada bucket, enquanto a ORDER BY para a saída determina a ordem na qual as linhas de saída são mostradas.

Exemplos

SELECT
  exchange,
  symbol,
  NTILE(4) OVER (PARTITION BY exchange ORDER BY shares) AS ntile_4
FROM trades
ORDER BY exchange, NTILE_4;

+--------+------+-------+
|exchange|symbol|NTILE_4|
+--------+------+-------+
|C       |SPY   |      1|
|C       |AAPL  |      2|
|C       |AAPL  |      3|
|N       |SPY   |      1|
|N       |AAPL  |      1|
|N       |SPY   |      2|
|N       |QQQ   |      2|
|N       |QQQ   |      3|
|N       |YHOO  |      4|
|Q       |MSFT  |      1|
|Q       |YHOO  |      1|
|Q       |MSFT  |      2|
|Q       |YHOO  |      2|
|Q       |QQQ   |      3|
|Q       |QQQ   |      4|
|P       |AAPL  |      1|
|P       |YHOO  |      1|
|P       |MSFT  |      2|
|P       |SPY   |      3|
|P       |MSFT  |      4|
+--------+------+-------+
Copy