Função de janela NTILE - Amazon Redshift

Função de janela NTILE

A função de janela NTILE divide as linhas ordenadas na partição no número especificado de grupos classificados de tamanho o mais igual possível e retorna o grupo em que dada linha se encontra.

Sintaxe

NTILE (expr) OVER ( [ PARTITION BY expression_list ] [ ORDER BY order_list ] )

Argumentos

expr

O número de grupos de classificação, devendo resultar em um valor inteiro positivo (maior que 0) para cada partição. O argumento da expr não deve ser anulável.

OVER

Uma cláusula que especifica o particionamento e ordenação da janela. A cláusula OVER não pode conter uma especificação de quadro da janela.

PARTITION BY window_partition

Opcional. O intervalo de registros para cada grupo na cláusula OVER.

ORDER BY window_ordering

Opcional. Uma expressão que classifica as linhas dentro de cada partição. Se a cláusula ORDER BY for omitida, o comportamento da classificação será o mesmo.

Se ORDER BY não produzir uma ordenação exclusiva, a ordem das linhas será não determinística. Para obter mais informações, consulte Ordenação exclusiva de dados para funções da janela.

Tipo de retorno

BIGINT

Exemplos

As seguintes classificações de exemplo classifica o preço pago por ingressos de Hamlet em 26 de agosto de 2008 em quatro grupos de classificação. O conjunto de resultados é 17 linhas, divididas quase uniformemente entre as classificações 1 a 4:

select eventname, caldate, pricepaid, ntile(4) over(order by pricepaid desc) from sales, event, date where sales.eventid=event.eventid and event.dateid=date.dateid and eventname='Hamlet' and caldate='2008-08-26' order by 4; eventname | caldate | pricepaid | ntile -----------+------------+-----------+------- Hamlet | 2008-08-26 | 1883.00 | 1 Hamlet | 2008-08-26 | 1065.00 | 1 Hamlet | 2008-08-26 | 589.00 | 1 Hamlet | 2008-08-26 | 530.00 | 1 Hamlet | 2008-08-26 | 472.00 | 1 Hamlet | 2008-08-26 | 460.00 | 2 Hamlet | 2008-08-26 | 355.00 | 2 Hamlet | 2008-08-26 | 334.00 | 2 Hamlet | 2008-08-26 | 296.00 | 2 Hamlet | 2008-08-26 | 230.00 | 3 Hamlet | 2008-08-26 | 216.00 | 3 Hamlet | 2008-08-26 | 212.00 | 3 Hamlet | 2008-08-26 | 106.00 | 3 Hamlet | 2008-08-26 | 100.00 | 4 Hamlet | 2008-08-26 | 94.00 | 4 Hamlet | 2008-08-26 | 53.00 | 4 Hamlet | 2008-08-26 | 25.00 | 4 (17 rows)