RANK
Asigna puestos teniendo en cuenta los empates: los valores iguales comparten puesto y el siguiente se salta.
Sintaxis
RANK() OVER (ORDER BY <criterio de orden>)
RANK() OVER (PARTITION BY <grupo> ORDER BY <criterio de orden>)
Como en una competición: dos personas con el mismo resultado comparten el segundo puesto, y la siguiente queda cuarta, porque el tercero ya está «ocupado». Una función de ventana: el número de filas no cambia y cada una recibe su puesto. PARTITION BY calcula los puestos por separado en cada grupo.