RANK
Devuelve el rango de una fila en la partición de la ventana, es decir, su puesto en el orden de ORDER BY.
PostgreSQL 17.9
RANK()Valor devuelto
Número entero (bigint), el puesto de la fila; los valores iguales comparten puesto y los siguientes se saltan: 1, 2, 2, 4
Ejemplos
Rango por estado con huecos
PostgreSQL 17.9
SELECT member_name,
status,
RANK() OVER (
ORDER BY status
) AS status_rank
FROM FamilyMembers;Puestos por precio de cada miembro de la familia
PostgreSQL 17.9
SELECT family_member,
unit_price,
RANK() OVER (
PARTITION BY family_member
ORDER BY unit_price DESC
) AS price_rank
FROM Payments
ORDER BY family_member,
price_rank;Detalles
Sin ORDER BY, todas las filas de la partición reciben el rango 1. Las funciones de ventana no funcionan en WHERE: para elegir los primeros puestos, calcula el rango en una subconsulta y filtra en la consulta externa.