Saltar al contenido principal
Página traducida

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.

NTH_VALUE

Devuelve el valor de la expresión evaluada sobre la enésima fila del marco de ventana.

Esta función de ventana integrada calcula el marco de ventana de cada fila del mismo modo que una función de ventana de agregación. Devuelve el valor de la expresión evaluada sobre la fila N del marco de ventana. Las filas se numeran dentro del marco de ventana a partir de 1 en el orden definido por la cláusula ORDER BY, si está presente, o en un orden arbitrario en caso contrario. Si no hay una enésima fila en la partición, se devuelve NULL.

Consulte también: [SELECT] [FIRST_VALUE] [LAST_VALUE]


Sintaxis​

SELECT NTH_VALUE(expr, N) OVER (
[PARTITION BY column]
ORDER BY column
[ROWS BETWEEN frame_start AND frame_end]
) FROM <multipartIdentifier>;

Argumentos​

expr La expresión que se evalúa sobre la enésima fila del marco de ventana.

N Un entero positivo que especifica el número de la fila que se obtiene (con índice basado en 1).

PARTITION BY column Opcional. Divide el conjunto de resultados en particiones. La función NTH_VALUE se aplica dentro de cada partición por separado.

ORDER BY column Especifica el orden en que se procesan las filas.

ROWS BETWEEN frame_start AND frame_end Opcional. Define el marco de ventana.

Valor(es) devuelto(s)​

Devuelve el valor de la expresión evaluada sobre la enésima fila del marco de ventana, o NULL si la enésima fila no existe.


Ejemplos​

Obtener el segundo colaborador con más contribuciones​

-- Get the top 3 contributors by name for comparison
SELECT
login,
contributions,
NTH_VALUE(login, 1) OVER (ORDER BY contributions DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as top_contributor,
NTH_VALUE(login, 2) OVER (ORDER BY contributions DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as second_contributor,
NTH_VALUE(login, 3) OVER (ORDER BY contributions DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as third_contributor
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.