MySQL MariaDB

Función de la ventana RANK de MySQL

Función de la ventana RANK de MySQL
El método Ranking asigna un rango dentro de la partición de un resultado de un conjunto a cada fila. El rango de una fila se determina incrementando una cifra de rangos de la fila que la precede. MySQL utiliza una función de clasificación que ayuda a una clasificación por fila en una partición de esquema. En MySQL, los métodos de calificación son de hecho una parte parcial del método de ventana. Utilizará los métodos de calificación en MySQL con las cláusulas siguientes:

En total, hay tres tipos de funciones de clasificación, como sigue:

RANGO MySQL ():

Este es un método que da un rango dentro de una partición o matriz de resultados con brechas por fila. Cronológicamente, la clasificación de filas no se asigna todo el tiempo (i.mi., aumentado en uno de la fila anterior). Incluso cuando tiene un empate entre varios de los valores, en ese punto, la utilidad rank () le aplica la misma clasificación. Además, su rango anterior más una cifra de números repetidos puede ser el número de rango posterior.

Para comprender la clasificación, abra el shell del cliente de la línea de comandos y escriba su contraseña de MySQL para comenzar a usarlo.

Suponga que tenemos una tabla a continuación llamada "igual" dentro de una base de datos "datos", con algunos registros.

>> SELECCIONAR * DE datos.mismo;

Ejemplo 01: RANGO simple ()

A continuación, hemos estado usando la función de rango dentro del comando SELECT. Esta consulta selecciona la columna "id" de la tabla "mismo" mientras la clasifica de acuerdo con la columna "id". Como puede ver, le hemos dado un nombre a la columna de clasificación, que es "my_rank". La clasificación ahora se almacenará en esta columna, como se muestra a continuación.

>> SELECT id, RANK () OVER (ORDER BY id) my_rank FROM fata.mismo;

Ejemplo 02: RANK () usando PARTITION

Suponga otra tabla "empleado" en una base de datos "datos" con los siguientes registros. Tengamos otra instancia que divide el conjunto de resultados en segmentos.

>> SELECCIONAR * DE datos.empleado;

Para consumir el método RANK (), la instrucción siguiente asigna el rango a cada fila y divide el conjunto de resultados en particiones utilizando "Edad" y clasificándolos según el "Salario". Esta consulta ha obtenido todos los registros mientras se clasifica en una columna "new_rank". Puede ver el resultado de esta consulta a continuación. Ha ordenado la tabla según "Salario" y la ha dividido según "Edad".

>> SELECT *, RANK () OVER (PARTITION BY Age ORDER BY Salario) new_rank FROM datos.empleado;

MySQL DENSE_Rank ():

Esta es una funcionalidad donde, sin agujeros, determina un rango por cada fila dentro de una división o conjunto de resultados. La clasificación de filas se asigna con mayor frecuencia en orden secuencial. A veces, tiene un vínculo entre los valores y, por lo tanto, se asigna al rango exacto por el rango denso, y su rango posterior es el siguiente número sucesivo.

Ejemplo 01: DENSE_RANK () simple

Supongamos que tenemos una tabla "empleado", y tiene que clasificar las columnas de la tabla, "Nombre" y "Salario" de acuerdo con la columna "Nombre". Hemos creado una nueva columna "dens_Rank" para almacenar la calificación de los registros en ella. Al ejecutar la consulta a continuación, tenemos los siguientes resultados con una clasificación diferente para todos los valores.

>> SELECT Nombre, Salario, DENSE_RANK () OVER (ORDER BY Name) dens_rank FROM datos.empleado;

Ejemplo 02: DENSE_RANK () usando PARTITION

Veamos otra instancia que divide el conjunto de resultados en segmentos. De acuerdo con la siguiente sintaxis, el conjunto resultante particionado por la frase PARTITION BY es devuelto por la instrucción FROM, y el método DENSE_RANK () luego se difunde en cada sección usando la columna "Nombre". Luego, para cada segmento, la frase ORDER BY se difumina para determinar el imperativo de las filas usando la columna "Edad".

>> SELECT Nombre, Edad, Salario, DENSE_RANK () OVER (PARTICIÓN POR Nombre ORDER BY Edad) new_rank FROM datos.empleado;

Al ejecutar la consulta anterior, puede ver que tenemos un resultado muy distinto en comparación con el método Single dense_rank () en el ejemplo anterior. Tenemos el mismo valor repetido para cada valor de fila, como puede ver a continuación. Es el lazo de los valores de rango.

PERCENT_RANK de MySQL ():

De hecho, es un método de clasificación porcentual (clasificación comparativa) que calcula las filas dentro de una partición o colección de resultados. Este método devuelve una lista de una escala de valores de cero a 1.

Ejemplo 01: PERCENT_RANK () simple

Usando la tabla "empleado", hemos estado mirando el ejemplo del método simple PERCENT_RANK (). Tenemos una consulta dada a continuación para esto. La columna per_rank ha sido generada por el método PERCENT_Rank () para clasificar el conjunto de resultados en forma de porcentaje. Hemos estado obteniendo los datos según el orden de clasificación de la columna "Edad" y luego hemos estado clasificando los valores de esta tabla. El resultado de la consulta para este ejemplo nos dio una clasificación porcentual para los valores que se presentan en la imagen a continuación.

>> SELECT *, PERCENT_RANK () OVER (ORDER BY Age) per_rank FROM datos.empleado;

Ejemplo 02: PERCENT_RANK () usando PARTITION

Después de hacer el ejemplo simple de PERCENT_RANK (), ahora es el turno de la cláusula "PARTITION BY". Hemos estado usando la misma tabla "empleado". Echemos otro vistazo a otra instancia que divide el conjunto de resultados en secciones. Dada la siguiente sintaxis, el muro de conjunto resultante de la expresión PARTITION BY es reembolsado por la declaración FROM, así como el método PERCENT_RANK () se utiliza para clasificar cada orden de fila por la columna "Nombre". En la imagen que se muestra a continuación, puede ver que el conjunto de resultados contiene solo valores 0 y 1.

>> SELECT *, PERCENT_RANK () OVER (PARTICIÓN POR Salario ORDEN POR Nombre) per_rank FROM datos.empleado;

Conclusión:

Finalmente, hemos realizado las tres funciones de clasificación para las filas utilizadas en MySQL, a través del shell de cliente de línea de comandos de MySQL. Además, hemos tenido en cuenta tanto la cláusula simple como la cláusula PARTITION BY en nuestro estudio.

Cómo usar Xdotool para estimular los clics del mouse y las pulsaciones de teclas en Linux
Xdotool es una herramienta de línea de comandos gratuita y de código abierto para simular clics del mouse y pulsaciones de teclas. Este artículo cubri...
Los 5 mejores productos ergonómicos de mouse de computadora para Linux
¿El uso prolongado de la computadora causa dolor en la muñeca o los dedos?? ¿Sufre de rigidez en las articulaciones y constantemente tiene que dar la ...
Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...