ROW_NUMBER
Numera las filas de una partición de la ventana en el orden de ORDER BY, empezando por 1.
MySQL 8.4
ROW_NUMBER()Valor devuelto
Número entero (BIGINT UNSIGNED) de 1 al número de filas de la partición
Ejemplos
Números de fila por estado
MySQL 8.4
SELECT member_name,
status,
ROW_NUMBER() OVER (
ORDER BY status
) AS row_num
FROM FamilyMembers;Numeración dentro de cada estado
MySQL 8.4
SELECT member_name,
status,
birthday,
ROW_NUMBER() OVER (
PARTITION BY status
ORDER BY birthday
) AS num_in_status
FROM FamilyMembers;Detalles
Las filas con valores iguales en ORDER BY reciben igualmente números distintos, en cualquier orden. Sin ORDER BY, el orden de la numeración no está definido. Una función de ventana no se puede usar en WHERE: para quedarte, por ejemplo, con la primera fila de cada partición, calcula el número en una subconsulta y filtra en la consulta externa.