Todos los productos
Search
Centro de documentos

Realtime Compute for Apache Flink:LAST_VALUE

Última actualización: Sep 03, 2026

LAST_VALUE devuelve el último valor no nulo en un flujo de datos dentro de una ventana OVER. Utilice esta función para rastrear el valor válido más reciente de cada partición a medida que llegan nuevos registros.

Límites

Solo es compatible con Realtime Compute for Apache Flink que usa Ververica Runtime (VVR) 3.0.0 o versiones posteriores.

Sintaxis

T LAST_VALUE(T value)
T LAST_VALUE(T value, BIGINT order)

Parámetros de entrada

Parámetro

Tipo de dato

Descripción

value

Cualquier tipo de dato

Valor por evaluar. Se omiten los valores nulos.

order

BIGINT

Clave de ordenamiento que determina qué registro se considera el último. Se devuelve el registro no nulo con el mayor valor de order.

Importante

Todos los parámetros de entrada deben ser del mismo tipo de dato.

Valor devuelto

Devuelve el mismo tipo de dato que value.

Notas de uso

**Uso del parámetro order**

Si proporciona un valor de order, LAST_VALUE selecciona el registro no nulo con el mayor valor de order en lugar de depender del orden de procesamiento.

Ejemplo

Datos de prueba (tabla T1)

a (BIGINT)

b (INT)

c (VARCHAR)

1

1

Hello

2

2

Hello

3

3

Hello

4

4

Hello

5

5

Hello

6

6

Hello

7

7

NULL

8

7

Hello World

9

8

Hello World

10

20

Hello World

Instrucción de prueba

SELECT c, LAST_VALUE(b)
OVER (PARTITION BY c ORDER BY PROCTIME() RANGE UNBOUNDED PRECEDING) AS var1
FROM T1;

Resultado

c (VARCHAR)

var1 (INT)

Hello

1

Hello

2

Hello

3

Hello

4

Hello

5

Hello

6

NULL

7

Hello World

7

Hello World

8

Hello World

20

La fila NULL en c devuelve var1 = 7 porque dicha partición contiene solo una fila (b = 7). En la partición Hello World, cada fila refleja el último valor no nulo de b hasta esa fila inclusive (7, luego 8 y finalmente 20), ya que el marco de la ventana es RANGE UNBOUNDED PRECEDING.