Referencia de funciones

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;
member_namestatusrow_num
Lela Quinceydaughter1
Annie Quinceydaughter2
Wednesday Addamsdaughter3
Headley Quinceyfather4
Ernest Forrestfather5
Flavia Quinceymother6
Constance Forrestmother7
Andie Quinceyson8

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;
member_namestatusbirthdaynum_in_status
Lela Quinceydaughter1985-06-071
Annie Quinceydaughter1988-04-102
Wednesday Addamsdaughter2005-01-133
Headley Quinceyfather1960-05-131
Ernest Forrestfather1961-09-112
Flavia Quinceymother1963-02-161
Constance Forrestmother1968-09-062
Andie Quinceyson1983-06-051

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.

Véase también

Dónde aprenderlo