Resumen: en este tutorial, aprenderá a usar la función SQLite NTILE()
para dividir un conjunto de resultados en un número de cubos y asignar un número de cubo a cada fila.
Introducción a la función SQLite NTILE ()
La función SQLite NTILE()
es una función de ventana que divide un conjunto de resultados ordenado en un número de cubos por una expresión especificada y asigna un número de cubo apropiado a cada fila.
A continuación se muestra la sintaxis de la función NTILE()
:
En esta sintaxis:
expresión
expression
puede ser un entero positivo literal o cualquier expresión válida que se resuelva a un entero positivo.
La función NTILE()
asigna números desde el 1 hasta el valor de expression
a cada fila. El número de filas en cubos puede diferir como máximo en 1. El resto del número de filas divididas por cubos se asigna a cada cubo, comenzando por el cubo 1.
Por ejemplo, si tiene 10 filas y 4 cubos. Cada cubo tendrá 2 filas. El resto de 10/4 es 2. Así que el primer cubo tendrá 2 + 1 = 3 filas, el segundo cubo también tendrá 3 filas.
La siguiente imagen ilustra la idea:
Si el valor de la expresión es mayor que el número de filas, entonces el NTILE()
función de cubrir el número de cubos igual al número de filas. Por lo tanto, los cubos restantes estarán vacíos.
Por ejemplo, si tiene 10 filas y 11 cubos, a cada fila se le asignará un número de cubo del 1 al 10. El cubo 11 no tendrá fila.
Observe que no puede usar una subconsulta o una función de ventana en expression
.PARTICIÓN
POR
La cláusula PARTITION BY
divide los conjuntos de resultados en particiones a las que se aplica la función NTILE
.
ORDENAR POR
La cláusula ORDER BY
especifica el orden de las filas en cada partición a la que se aplica NTILE()
.
Ejemplo de función SQLite NTILE ()
Usaremos la tabla tracks de la base de datos de muestra para demostrar la función NTILE()
:
Usando la función SQLite NTILE () con ORDEN POR ejemplo
La siguiente instrucción utiliza la función NTILE()
para dividir en 4 cubos los valores de la columna Milliseconds
de la tabla tracks
del álbum 1.
La columna Milliseconds
tiene 10 valores en este álbum, por lo que los dos valores adicionales, que es el resto de 10/4, se distribuyen a los cubos 1 y 2, que por lo tanto tienen más valor que los cubos 3 o 4.
Aquí está la salida:
Usando la función SQLite NTILE () con ejemplo de cláusula de PARTICIÓN POR
La siguiente instrucción usa la función NTILE()
para dividir las pistas de cada álbum en 3 cubos por los valores de la columna Bytes
:
La siguiente imagen muestra la salida:
En este ejemplo, la cláusula PARTITION BY
distribuyó las filas en particiones o álbumes. La cláusula ORDER BY
ordenaba las pistas de cada álbum por su tamaño en bytes. Y la función NTILE()
asignó un número de cubo a cada pista y restableció el número de cubo para cada álbum.
En este tutorial, ha aprendido a usar la función SQLite NTILE()
para dividir un conjunto de resultados en un número de cubos y asignar un número de cubos a cada fila.
- ¿Fue útil este tutorial ?
- YesNo