Problema:
Desea clasificar los registros omitiendo las posiciones de clasificación después de las filas que tienen la misma clasificación.
Ejemplo:
Nuestra base de datos tiene una tabla llamada championship con datos en las siguientes columnas:id (clave principal), user_name y score .
| id | nombre_de_usuario | puntuación |
| 111 | Juan | 12 |
| 112 | María | 23 |
| 115 | Lisa | 45 |
| 120 | Alan | 23 |
| 221 | Cris | 23 |
Vamos a mostrar los nombres de todos los usuarios y sus puntajes ordenados en orden descendente y clasificados por puntaje.
Solución 1:
SELECT RANK() OVER(ORDER BY score DESC) AS rank_place, user_name, score FROM championship;
Esta consulta devuelve la siguiente clasificación:
| rank_place | nombre_de_usuario | puntuación |
| 1 | Lisa | 45 |
| 2 | María | 23 |
| 2 | Alan | 23 |
| 2 | Cris | 23 |
| 5 | Juan | 12 |
Observe que el número de rango es del 1 al 5, ordenado por puntuación en orden descendente.
Discusión:
Usa RANK si desea omitir posiciones de clasificación después de filas con la misma clasificación. En nuestro ejemplo, Mary, Alan y Chris tenían la misma clasificación de 2. La siguiente posición elegible es 5 (calculada a partir de 2 + 3 filas con la misma clasificación).