Resumen: en este tutorial, aprenderá sobre la función MySQL DENSE_RANK()
y cómo aplicarla para encontrar el rango de la fila en una partición o conjunto de resultados.
Introducción a la función MySQL DENSE_RANK
La DENSE_RANK()
es una función de ventana que asigna un rango a cada fila dentro de una partición o conjunto de resultados sin espacios en los valores de clasificación.
El rango de una fila se incrementa en uno a partir del número de valores de rango distintos que vienen antes de la fila.
La sintaxis de la función DENSE_RANK()
es la siguiente:
Code language: SQL (Structured Query Language) (sql)
En esta sintaxis:
- Primero, la cláusula
PARTITION BY
divide los conjuntos de resultados producidos por la cláusulaFROM
en particiones. La funciónDENSE_RANK()
se aplica a cada partición. - En segundo lugar, la cláusula
ORDER BY
especifica el orden de las filas de cada partición sobre las que opera la funciónDENSE_RANK()
.
Si una partición tiene dos o más filas con el mismo valor de rango, a cada una de estas filas se le asignará el mismo rango.
A diferencia de la función RANK()
, la función DENSE_RANK()
siempre devuelve valores de rango consecutivos.
Supongamos que tenemos una tabla t
con unos datos de muestra como los siguientes:
Code language: SQL (Structured Query Language) (sql)
La siguiente sentencia utiliza la función DENSE_RANK()
para asignar un rango a cada fila:
Code language: SQL (Structured Query Language) (sql)
Aquí está la salida:
Ejemplo de función DENSE_RANK() de MySQL
Utilizaremos la tabla sales
creada en el tutorial de la función ventana para la demostración.
La siguiente sentencia utiliza la función DENSE_RANK()
para clasificar a los empleados de ventas por el importe de las mismas.
Code language: SQL (Structured Query Language) (sql)
La salida es la siguiente:
En este ejemplo:
- Primero, la cláusula
PARTITION BY
dividió los conjuntos de resultados en particiones utilizando el año fiscal. - Segundo, la cláusula
ORDER BY
especificó el orden de los empleados de ventas por ventas en orden descendente. - Tercero, la función
DENSE_RANK()
se aplica a cada partición con el orden de las filas especificado por la cláusulaORDER BY
.
En este tutorial, ha aprendido a utilizar la función MySQL DENSE_RANK()
para ordenar las filas en cada partición de un conjunto de resultados.
- ¿Ha sido útil este tutorial?
- SíNo