Sobes.tech
Middle

¿En qué se diferencia RANK de DENSE_RANK?

sobes.tech AI

Respuesta de la IA

RANK y DENSE_RANK son funciones de ventana en SQL que asignan rangos a las filas dentro de una ventana, pero difieren en su comportamiento cuando hay valores iguales (es decir, en empates).

  • RANK(): Asigna el mismo rango a valores iguales, pero omite los rangos siguientes. Por ejemplo, si dos filas comparten el primer lugar, ambas obtienen el rango 1, y la siguiente fila obtiene el rango 3 (se omite el 2).

  • DENSE_RANK(): También asigna el mismo rango a valores iguales, pero no omite rangos. En el mismo ejemplo, dos filas con rango 1, la siguiente obtiene el rango 2.

Ejemplo:

Valor RANK() DENSE_RANK()
100 1 1
100 1 1
90 3 2
80 4 3

De esta forma, DENSE_RANK() da rangos densos sin saltos, mientras que RANK() considera los saltos en caso de igualdad.