Sintaxis
Descripción de la ilustración ntile.gif
Consulte también:
«Funciones analíticas» para obtener información sobre sintaxis, semántica y restricciones, incluidas las formas válidas de expr
Purpose
NTILE
es una función analítica. Divide un conjunto de datos ordenado en un número de cubos indicado por expr
y asigna el número de cubo apropiado a cada fila. Los cubos están numerados del 1 al expr
. El valor expr
debe resolver a una constante positiva para cada partición. Oracle Database espera un entero, y si expr
es una constante no integrada, Oracle trunca el valor a un entero. El valor devuelto es NUMBER
.
El número de filas en los cucharones puede diferir como máximo en 1. Los valores restantes (el resto del número de filas divididas por cubos) se distribuyen uno por cada cubo, comenzando por el cubo 1.
Si expr
es mayor que el número de filas, se llenará un número de cubos igual al número de filas y los cubos restantes estarán vacíos.
No puede usar NTILE
ni ninguna otra función analítica para expr
. Es decir, no puede anidar funciones analíticas, pero puede usar otras expresiones de función integradas para expr
.
Consulte también:
«Acerca de expresiones SQL «para obtener información sobre formularios válidos de expr
y Tabla 2-10,» Matriz de conversión de tipos implícitos » para obtener más información sobre la conversión implícita
Ejemplos
El siguiente ejemplo divide en 4 cubos los valores de la columna salary
de la tabla oe.employees
del Departamento 100. La columna salary
tiene 6 valores en este departamento, por lo que los dos valores adicionales (el resto de 6 / 4) se asignan a los cubos 1 y 2, que por lo tanto tienen un valor más que los cubos 3 o 4.
SELECT last_name, salary, NTILE(4) OVER (ORDER BY salary DESC) AS quartile FROM employees WHERE department_id = 100;LAST_NAME SALARY QUARTILE------------------------- ---------- ----------Greenberg 12000 1Faviet 9000 1Chen 8200 2Urman 7800 2Sciarra 7700 3Popp 6900 4