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
ROW_NUMBERnunca empata: filas iguales igual reciben 1, 2, 3.RANKda a los empates el mismo número y luego salta: 1, 1, 3.DENSE_RANKda a los empates el mismo número y no salta nada: 1, 1, 2.
Palabras clave y builtins usados aquí
ASBYDESCFROMORDERSELECTposition
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.
Paso 2 de 9 en Funciones de ventana; paso 8 de 24 en Analítica y reportes.