Tutoriales

Función SQL DENSE_RANK()

Las funciones de ventana son una característica importante de SQL y desempeñan un papel fundamental en operaciones y cálculos de datos complejos en bases de datos SQL. Una de las funciones en las funciones de la ventana SQL es densa_rank().

La función DENSE_RANK() nos permite asignar una clasificación única a cada fila del conjunto de resultados en función del valor de otra columna especificada. Es muy similar a la función rank(), pero ligeramente diferente en la forma en que maneja registros duplicados.

En este tutorial, exploraremos cómo funciona la función, la sintaxis proporcionada y cómo usarla en la biblioteca.

cómo funciona

Primero expliquemos cómo funciona esta función. Es mejor recordar que esta función es de orden superior y no podemos explicar la implementación subyacente.

Esta función funciona asignando una clasificación a cada fila del conjunto de resultados, comenzando con la clasificación 1 y aumentando en 1 para cada valor único en la columna.

A las filas con valores similares (duplicados) en la columna especificada se les asignará el mismo rango, mientras que a la siguiente fila con valores diferentes se le asignará el siguiente rango disponible, sin espacios.

Como mencionamos, esta función no deja espacios donde existan valores duplicados, lo que la diferencia de la función rank().

Un uso común de la función dend_rank() es realizar operaciones de clasificación. Por ejemplo, podemos usarlo para encontrar los primeros N registros, etc.

Sintaxis de la función:

A continuación se describe la sintaxis de la función densa_rank():

DENSE_RANK() excede (

[PARTITION BY partition_expression, … ]

Orden POR expresión de clasificación [ASC | DESC]…

)

En la sintaxis dada:

  1. Comencemos con la función densa_rank() en sí.
  2. La cláusula OVER marca el comienzo de la especificación de la función de ventana. Esto define cómo se aplica la clasificación en el conjunto de resultados.
  3. PARTICIÓN POR La expresión de partición es una cláusula opcional que nos permite dividir el conjunto de resultados en grupos o particiones en función de una o más columnas. La clasificación se aplica a cada partición individualmente y se restablece en particiones nuevas.
  4. ORDER BY sort_expression especifica el orden en el que queremos ordenar los datos en la partición de resultados.

muestra

Para demostrar cómo utilizar la función dendense_rank(), comencemos con una tabla que contiene datos de muestra. En nuestro ejemplo, utilizamos una tabla de «Pedidos» de muestra como se muestra a continuación:

Ejemplo 1: uso de la función Dense_Rank()

Podemos utilizar la función densa_rank() para clasificar las órdenes resultantes según el precio. Considere la siguiente consulta de ejemplo:

elegir

número de orden,

nombre de usuario del cliente,

productos comprados,

DENSE_RANK() excede (

Orden atravesar

Descripción del precio

) nivel de precios

de

comando o;

En el ejemplo dado, utilizamos la función densa_rank() para clasificar la información según el precio del pedido. Omitimos la cláusula PARTICIÓN POR porque no estamos agrupando los datos.

El resultado resultante es el siguiente:

Ejemplo 2: base de partición

También podemos agregar una cláusula PARTITION BY para agrupar los datos en diferentes segmentos, por ejemplo según los productos comprados.

El ejemplo de consulta es el siguiente:

elegir

número de orden,

nombre de usuario del cliente,

productos comprados,

DENSE_RANK() excede (

Partición por compra_producto

Orden atravesar

Descripción del precio

) ranking_precios

de

comando o;

Esto debería dividir los datos en diferentes grupos según el grupo de resultados y aplicar una clasificación a los elementos de cada grupo.

en conclusión

En este artículo, aprendimos los conceptos básicos del uso y uso de la función de ventana dendense_rank() en SQL para asignar una clasificación basada en un valor de columna específico.

LEER  De esta manera permaneces completamente anónimo [100% Perfect]

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba