Esta página se tradujo del inglés con ayuda de IA. Si hay diferencias entre ambas, la versión en inglés es la referencia.
ROW_NUMBER
Devuelve el número de la fila dentro de la partición actual. Las filas se numeran a partir de 1 en el orden definido por la cláusula ORDER BY de la definición de la ventana, o en un orden arbitrario en caso contrario.
Consulte también:
[SELECT] [RANK] [DENSE_RANK]
Sintaxis
SELECT ROW_NUMBER() OVER ([PARTITION BY column] ORDER BY column [ASC|DESC])
FROM <multipartIdentifier>;
Argumentos
PARTITION BY column
Opcional. Divide el conjunto de resultados en particiones. La función ROW_NUMBER se aplica a cada partición por separado y reinicia el número de fila en cada partición.
ORDER BY column Especifica el orden en que se asignan los números de fila. Es necesario para obtener resultados significativos.
Valor(es) devuelto(s)
Devuelve un entero que representa el número de fila secuencial dentro de la partición, a partir de 1.
Ejemplos
Clasificar colaboradores dentro de un repositorio
-- Rank contributors within a repository
SELECT
login,
contributions,
ROW_NUMBER() OVER (ORDER BY contributions DESC) as contribution_rank
FROM github.repos.contributors
WHERE owner = 'stackql'
AND repo = 'stackql';
Seguir la secuencia de issues a lo largo del tiempo
-- Track issue growth over time
SELECT
number,
title,
state,
created_at,
ROW_NUMBER() OVER (ORDER BY created_at) as issue_sequence
FROM github.issues.issues
WHERE owner = 'stackql'
AND repo = 'stackql'
ORDER BY created_at;
Comparar ROW_NUMBER con RANK y DENSE_RANK
-- Compare RANK vs DENSE_RANK vs ROW_NUMBER for contributors
SELECT
login,
contributions,
RANK() OVER (ORDER BY contributions DESC) as rank,
DENSE_RANK() OVER (ORDER BY contributions DESC) as dense_rank,
ROW_NUMBER() OVER (ORDER BY contributions DESC) as row_num
FROM github.repos.contributors
WHERE owner = 'stackql'
AND repo = 'stackql';
Para obtener más información, consulte https://sqlite.org/windowfunctions.html#built-in_window_functions.