La función NTILE() en SQL Server es una función de ventana que distribuye filas de una partición ordenada en un número predefinido de grupos aproximadamente iguales. Asigna a cada grupo una expresión_número que va desde 1. La función NTILE() asigna una expresión_número para cada fila en un grupo, al que pertenece la fila.
Sintaxis:
NTILE(number_expression) OVER ( [PARTITION BY partition_expression ] ORDER BY sort_expression [ASC | DESC] )
Parámetros de sintaxis en detalle:
- expresión_número
La expresión_número es el número entero en el que se dividen las filas. - Cláusula
PARTITION BY La PARTICIÓN BY es opcional, diferencia las filas de un conjunto de resultados en particiones donde se utiliza la función NTILE(). - Cláusula ORDER BY La cláusula
ORDER BY define el orden de las filas en cada partición donde se usa NTILE().
Cuando el número de filas no es divisible por expresión_número, la función NTILE() da como resultado grupos de dos tamaños con la diferencia en uno. Los grupos más grandes siempre van por delante del grupo más pequeño dentro del orden especificado por ORDER BY dentro de la cláusula OVER(). Además, cuando todas las filas son divisibles por número_expresión, la función divide equitativamente las filas entre número_expresión.
Ejemplo:
Vamos a crear una tabla llamada geeks_demo:
CREATE TABLE geeks_demo ( ID INT NOT NULL ); INSERT INTO geeks_demo(ID) VALUES(1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
Ahora,
SELECT * FROM geeks_demo;
IDENTIFICACIÓN |
---|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
- Utilice la función NTILE() para dividir las filas anteriores en 3 grupos:
SELECT ID, NTILE (3) OVER ( ORDER BY ID ) Group_number FROM geeks_demo;
Producción :
IDENTIFICACIÓN número_de_grupo 1 1 2 1 3 1 4 1 5 2 6 2 7 2 8 3 9 3 10 3 - Use la función NTILE() para distribuir filas en 5 grupos:
SELECT ID, NTILE (3) OVER ( ORDER BY ID ) Group_number FROM geeks_demo;
Producción :
IDENTIFICACIÓN número_de_grupo 1 1 2 1 3 2 4 2 5 3 6 3 7 4 8 4 9 5 10 5 - Si alguien intenta ejecutar, use la función NTILE() sin expresión_número:
SELECT ID, NTILE() OVER ( ORDER BY ID ) Group_number FROM geeks_demo;
Salida:
arrojará el siguiente error:The function 'NTILE' takes exactly 1 argument(s).
Publicación traducida automáticamente
Artículo escrito por khushboogoyal499 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA