Función de ventana ntile postgreSQL

Función de ventana ntile postgreSQL
Los métodos de ventana en PostgreSQL se han expulsado para equiparar los datos de divergencia y son esenciales para casos de uso analítico y otros PostgreSQL. El método ntile () seguido de la cláusula Over en PostgreSQL se descarta para dividir las filas organizadas de una serie de cubos graduados. Los cubos no son nada más que un conjunto de grupos clasificados. A lo largo de este artículo, descubrirá cómo dividir las filas clasificadas en una partición en una figura dada de cubos clasificados utilizando la función PostgreSQL ntile (). El método ntile () asigna un número de cubo a cada grupo que comienza en 1 en un conjunto, demostrando el conjunto al que la fila tiene su lugar.

Sintaxis:

>> ntile (cubos) sobre ([partición por expresión de partición, ...] [ordet por expresión de clasificación]) [ASC | Descif], ...]);

En primer lugar, para comprender el método ntile, inicie sesión desde el shell postgreSQL. Es por eso que intente iniciar el shell de línea de comandos PostgreSQL desde las aplicaciones. Para trabajar en otro servidor, ingrese el nombre de un servidor; De lo contrario, presione Enter. Si necesita practicar en la base de datos previamente designada, E.gramo., Postgres, luego presione ENTER o de lo contrario, inscribe un título de Databank, E.gramo. 'prueba'. Para usar un puerto que no sea 5432, inscribirlo; Si no, déjelo como está y presione Enter para continuar. Puede solicitarle que ingrese el nombre de usuario en caso de que necesite cambiar a un nuevo nombre de usuario. Ingrese el nombre de usuario; de lo contrario, solo presione Entrar. Finalmente, debe colocar la contraseña de su usuario actual para cambiar utilizando la línea de comandos utilizando ese usuario específico como debajo. Posteriormente, entradas efectivas de todos los datos obligatorios, puede comenzar a trabajar en ntile.

Para comenzar a trabajar en ntile, debe crear una nueva tabla usando el comando Crear si no tiene uno. Piense en la tabla a continuación "Empleado" en su base de datos PostgreSQL llamada 'Prueba'. Esta tabla contiene cuatro columnas e.gramo., id, nombre, edad y salario de un empleado de una empresa en particular. Cada columna tiene un total de 10 filas, lo que significa 10 registros en cada campo de columna.

>> seleccionar * del empleado;

Al principio, tenemos que comprender el concepto simple de obtener registros de una tabla utilizando el pedido por cláusula. Hemos estado ejecutando el siguiente comando de selección sin usar ntile para elaborar y comprender el concepto brevemente. Recuperamos registros para columnas; Nombre, edad y salario al clasificar los registros en el orden ascendente de campo "edad". Puede ver que simplemente mostrará los registros presentados en la imagen.

>> seleccionar nombre, edad, salario del pedido de los empleados por edad;

Uso de ntile () con orden por cláusula:

Suponiendo la misma tabla "empleado", comencemos a usar ntile () sobre cláusula en nuestro ejemplo. En este ejemplo, hemos estado seleccionando las dos columnas; Nombre y salario, mientras se clasifica el resultado relacionado con el orden ascendente de una columna "Salario". El resultado contendrá datos donde la edad de un empleado es mayor de 24 años. Hemos definido el valor del cubo ntile como "3" porque queremos dividir las filas en 3 cubos, e.gramo., 1 a 3. Puede ver que las filas se han dividido con éxito en 3 cubos iguales, que contienen 3 filas en cada cubo.

>> Seleccionar nombre, salario, ntile (3) Over (orden por salario) desde el empleado donde edad> '24';

Ahora, tomemos otro ejemplo mientras usa la misma tabla "Empleado". Esta vez, queremos obtener los registros de tres columnas; Nombre, edad y salario utilizando la consulta de selección en el shell de comando. Hay ligeros cambios en la cláusula WHERE. Actualmente, hemos estado buscando los registros de la tabla "empleado" donde la edad es inferior a 27 años, lo que solo obtendrá los registros que tienen edades de menos de 27. Por otro lado, no hay cambios en un valor de cubo, ya que es nuevamente 3. Al probar el comando declarado, hemos encontrado solo tres registros, igualmente divididos en 3 cubos como se muestra en la imagen.

>> Seleccionar nombre, edad, salario, ntile (3) sobre (pedido por salario) del empleado donde la edad < '27';

Uso de ntile () con orden por y partición por cláusula:

Tengamos un ejemplo de ntile () mientras usa la partición y ordenar las cláusulas simultáneamente. Supongamos que se utilizará la tabla no cambiada de "empleado" de una base de datos "prueba". En este ejemplo, debe seleccionar las tres columnas; nombre, edad y salario, mientras se clasifica en la forma ascendente de una "edad" de campo. Además, hemos estado usando la Partición por cláusula en la columna "Salario", para hacer particiones de una tabla de acuerdo con esta columna. No existe una condición específica que se haya utilizado en esta consulta en particular, lo que significa que se mostrarán todos los registros de la tabla "empleado". El cubo ntile tiene un valor de "3". En la ejecución de la consulta establecida a continuación, verá el siguiente resultado. Las particiones se realizan de acuerdo con los valores distintos del "salario" de la columna. Todos los valores del "salario" de la columna son distintos, por eso se encuentra en diferentes particiones, excepto el valor "60000". Esto significa que cada partición tiene 1 valor excepto uno. Después de eso, todas las filas de partición se clasificaron a través de cubos. Solo un cubo obtuvo el segundo rango.

>> seleccionar nombre, edad, salario, ntile (3) sobre (partición por salario, orden por edad) del empleado;

Tomando el mismo ejemplo de ntile () con el uso de la partición y ordenar por cláusula con una cláusula donde. En la cláusula Where, hemos definido la condición, que dice que los únicos registros que se obtendrán son donde la edad del empleado tiene menos de 27 años. Solo obtuvimos 3 resultados con 2 particiones según la edad y la columna "ntile" con rangos.

>> seleccionar nombre, edad, salario, ntile (3) sobre (partición por salario, orden por edad) del empleado donde la edad < '27';

Conclusión:

En esta guía, hemos discutido diferentes ejemplos de funciones ntiles. Puede implementarlos según su necesidad.