Función de ventana NTILE - Amazon Redshift

Función de ventana NTILE

La función de ventana NTILE divide las filas ordenadas en la partición en la cantidad especificada de grupos clasificados de igual tamaño en la medida que sea posible y devuelve el grupo en el que se inscribe una fila dada.

Sintaxis

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

Argumentos

expr

La cantidad de grupos clasificados y debe dar como resultado un valor entero positivo (mayor que 0) para cada partición. El argumento expr no debe admitir valores nulos.

OVER

Una cláusula que especifica la partición y ordenamiento de ventana. La cláusula OVER no puede tener una especificación de marco de ventana.

PARTITION BY window_partition

Opcional. El rango de registros para cada grupo en la cláusula OVER.

ORDER BY window_ordering

Opcional. Una expresión que ordena las filas dentro de cada partición. Si se omite la cláusula ORDER BY, el comportamiento de clasificación es el mismo.

Si ORDER BY no produce un ordenamiento único, el orden de las filas no es determinístico. Para obtener más información, consulte Ordenación única de datos para funciones de ventana.

Tipo de retorno

BIGINT

Ejemplos

En el siguiente ejemplo, se clasifica en cuatro grupos de clasificación el precio pagado por los tickets de Hamlet el 26 de agosto de 2008. El conjunto de resultados es de 17 filas, divididas, casi uniformemente, entre las clasificaciones 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)