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.

LAST_VALUE

Devuelve el valor de la expresión evaluada sobre la última 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. Para cada fila, devuelve el valor de la expresión evaluada sobre la última fila del marco de ventana.

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


Sintaxis​

SELECT LAST_VALUE(expr) 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 última fila del marco de ventana.

PARTITION BY column Opcional. Divide el conjunto de resultados en particiones. La función LAST_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. Las opciones habituales incluyen:

  • ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW (valor predeterminado)
  • ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING

Valor(es) devuelto(s)​

Devuelve el valor de la expresión evaluada sobre la última fila del marco de ventana.


Ejemplos​

Buscar la versión más reciente como contexto​

-- Find first and latest release for context
SELECT
tag_name,
name,
published_at,
FIRST_VALUE(tag_name) OVER (
ORDER BY published_at
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) as first_release,
LAST_VALUE(tag_name) OVER (
ORDER BY published_at
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) as latest_release
FROM github.repos.releases
WHERE owner = 'stackql'
AND repo = 'stackql';
consejo

De forma predeterminada, el marco de ventana se extiende desde el inicio de la partición hasta la fila actual, por lo que LAST_VALUE devolvería el valor de la fila actual. Para obtener el último valor real de la partición, use ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING.

Para obtener más información, consulte https://sqlite.org/windowfunctions.html#built-in_window_functions.