typestar

RANK, DENSE_RANK, ROW_NUMBER en SQL

Tres maneras de numerar filas, y discrepan exactamente cuando hay un empate.

SELECT
    name,
    score,
    ROW_NUMBER() OVER (
        ORDER BY score DESC
    ) AS position,
    RANK() OVER (
        ORDER BY score DESC
    ) AS rank_gaps,
    DENSE_RANK() OVER (
        ORDER BY score DESC
    ) AS rank_dense
FROM players;

Cómo funciona

  1. ROW_NUMBER nunca empata: filas iguales igual reciben 1, 2, 3.
  2. RANK da a los empates el mismo número y luego salta: 1, 1, 3.
  3. DENSE_RANK da a los empates el mismo número y no salta nada: 1, 1, 2.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
194
Tokens
46
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 29 segundos.

Escribe este fragmento

Paso 2 de 9 en Funciones de ventana; paso 8 de 24 en Analítica y reportes.

← Anterior Siguiente →