Función MySQL DENSE_RANK

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áusula FROM en particiones. La función DENSE_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ón DENSE_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

Ejemplo de función DENSE_RANK() de MySQL

Utilizaremos la tabla salescreada en el tutorial de la función ventana para la demostración.

tabla de ventas

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:

MySQL DENSE_RANK - Asignar rango a los empleados de ventas

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 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áusula ORDER 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada.