Uso de la función mysql dense_rank

Uso de la función mysql dense_rank
La función mysql dense_rank () es una función que muestra el rango de una fila en su partición sin huecos en los valores de clasificación. Esta función es una función de ventana, lo que significa que tiene similitudes con funciones como las funciones row_number () y rank ().

Este tutorial profundizará en cómo funciona la función densa mysql y cómo podemos usarla en varias operaciones de bases de datos. Si desea seguir con este tutorial, considere descargar la base de datos de muestras de Sakila desde el recurso que se proporciona a continuación:

https: // dev.mysql.com/doc/index-other.html

Uso básico

La función mysql dense_rank () muestra los rangos de una fila dentro de una partición sin huecos. Las filas de las filas aumentan en un valor de 1 del valor de rango único de la fila anterior.

La sintaxis general de la función dense_rank () es como:

Seleccione Col1 dense_rank () Over (Partition by expr orden por expr [asc | desc]) rank_col_name de tb_name

Examinemos la sintaxis de consulta anterior más de cerca.

La función dense_rank () se vincula con la cláusula de selección, que mostrará los rangos de las filas de la tabla especificada.

La función dense_rank () sobre las secciones devuelve el resultado de la función dense_rank () y la salida que se mantiene en el nombre de la columna especificada.

La partición por cláusula divide los resultados devueltos por la cláusula de las particiones. La función dense_rank () se aplica a cada partición.

Finalmente, el orden por sección especifica el orden de las filas establecidas en cada partición.

Caso de uso de ejemplo

Usemos una base de datos de muestra para ilustrar cómo podemos usar la función Dense_Rank (). Para este ejemplo, utilizaremos la base de datos Sakila y, más específicamente, la tabla de películas en la base de datos de Sakila.

Usando la función dense_rank (), podemos clasificar las películas por su tasa de alquiler, como se muestra en la consulta a continuación:

Usa sakila;
Seleccione Título, Release_Year, Calificación, Longitud, Dense_Rank () Over (Partition por ORDER RELONED_YEAR por Rental_Rate ASC) Rank_Value de Film;

Debido a la cantidad masiva de datos en la base de datos de Sakila, reorganizaré la salida para una lectura e ilustración más fácil.

La salida está a continuación:



Si observa cuidadosamente la salida anterior, notará que la salida resultante varía del rango 1 al 3, que corresponde a los valores de alquiler_rate en la tabla de la película. Los valores de alquiler_rate son:

  1. 0.99 - Rango 1
  2. 2.99 - Rango 2
  3. 4.99 - Rango 3

En el ejemplo anterior, utilizamos la Partición por cláusula para dividir los conjuntos resultantes en varias particiones, en este caso, ralle_year.

A continuación, utilizamos el orden MySQL por la declaración para ordenar las películas por la tasa de alquiler en orden ascendente. Finalmente, aplicamos la función dense_rank () en cada partición especificada en el orden por declaración.

Conclusión

En este tutorial, explicamos cómo funciona la función Dense_Rank () en una base de datos y usamos un ejemplo del mundo real para ilustrar cómo usarla.

Puede obtener más información sobre dense_rank () ad otras funciones de ventana del recurso que se proporciona a continuación:

https: // dev.mysql.com/doc/refman/8.0/en/ventana-Funciones.html