Funciones RANK y DENSE_RANK
Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 65 de 72.
ROW_NUMBER() es un tipo de función de clasificación, y hay dos más: RANK() y DENSE_RANK().
La función RANK() numera las filas como ROW_NUMBER(), pero asigna números idénticos a las mismas filas y omite números. DENSE_RANK() es similar a RANK(), pero no omite números.
Por ejemplo:
| id | nivel |
| 1 | 5 |
| 2 | 6 |
| 3 | 6 |
| 4 | 7 |
| 5 | 7 |
| 6 | 5 |
SELECT id,
ROW_NUMBER() OVER (ORDER BY level) as row_num,
RANK() OVER (ORDER BY level) as row_rank,
DENSE_RANK() OVER (ORDER BY level) as row_dense_rank
FROM table1Esto devolverá:
| id | row_num | row_rank | row_dense_rank |
| 1 | 1 | 1 | 1 |
| 6 | 2 | 1 | 1 |
| 2 | 3 | 3 | 2 |
| 3 | 4 | 3 | 2 |
| 4 | 5 | 5 | 3 |
| 5 | 6 | 5 | 3 |
Explicación:
ROW_NUMBER(): Siempre único: 1, 2, 3, 4, 5, 6RANK():- nivel 5 (2 filas): ambas obtienen el rango 1
- nivel 6 (2 filas): ambas obtienen el rango 3 (se salta el 2)
- nivel 7 (2 filas): ambas obtienen el rango 5 (se salta el 4)
DENSE_RANK():- nivel 5 (2 filas): ambas obtienen el rango 1
- nivel 6 (2 filas): ambas obtienen el rango 2 (sin saltos)
- nivel 7 (2 filas): ambas obtienen el rango 3 (sin saltos)
Desafío
FácilTablas y columnas disponibles:
medals:region,medal_color,medal_count
Crea una consulta que muestre la región, el recuento total de medallas (la suma de todas las medals, independientemente del color) y dos tipos de clasificaciones:
- Un
regular_rank(con espacios) sobre la suma demedals - Un
dense_rank(sin espacios) sobre la suma demedals
Ordena el resultado por:
order by total_medals desc, region ascPruébalo tú mismo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Más palabras clave
La palabra clave INLa palabra clave BETWEENLa palabra clave LIKELa palabra clave ASRepaso: modelos de celulares2Condiciones
Conceptos básicos de las condicionesLa palabra clave ANDLa palabra clave ORLa palabra clave NOTCombinación de múltiples condicionesParéntesisBooleanos5Operaciones aritméticas
Operadores matemáticosColumnas matemáticasLa operación móduloLa función ROUND()3Formato de retorno específico
Valores nulosOrdenar resultados, parte 1Ordenar resultados, parte 2Repaso: empresa de ciberseguridadLimitar el número de registrosRepaso: fábrica de vehículos6Desafíos introductorios
Repaso - Elección parlamentariaRepaso - Detención policial de un criminalRepaso - Recipiente de bebida de barRepaso - Ingeniería de nuevas columnas9Múltiples tablas
Unión básica, parte 1Unión básica, parte 2Repaso: uniónAutouniónRepaso: autouniónUniónSimplificar consultas, palabra clave WITHRepaso: consultas WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterio ROWS y RANGEPractica por tu cuenta: Playground de SQL