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 BYdivide los conjuntos de resultados producidos por la cláusulaFROMen particiones. La funciónDENSE_RANK()se aplica a cada partición. - En segundo lugar, la cláusula
ORDER BYespecifica 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 salescreada 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 BYdividió los conjuntos de resultados en particiones utilizando el año fiscal. - Segundo, la cláusula
ORDER BYespecificó 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