Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:LAST_VALUE

Última atualização: Nov 03, 2026

LAST_VALUE retorna o último valor não nulo em um fluxo de dados dentro de uma janela OVER. Use essa função para rastrear o valor válido mais recente de cada partição à medida que novos registros chegam.

Limitações

Compatível apenas com o Realtime Compute for Apache Flink que usa o Ververica Runtime (VVR) 3.0.0 ou posterior.

Sintaxe

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

Parâmetros de entrada

Parâmetro Tipo de dados Descrição
value Qualquer tipo de dados O valor a ser avaliado. Valores nulos são ignorados.
order BIGINT Uma chave de classificação que determina qual registro é considerado o último. O registro não nulo com o maior valor de order é retornado.
Importante

Todos os parâmetros de entrada devem ser do mesmo tipo de dados.

Valor de retorno

Notas de uso

Uso do parâmetro order

Quando você fornece um valor de order, LAST_VALUE seleciona o registro não nulo com o maior valor de order em vez de depender da ordem de processamento.

Exemplo

Dados de teste (tabela 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

Instrução de teste

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

A linha NULL em c retorna var1 = 7 porque essa partição contém apenas uma linha (b = 7). Para a partição Hello World, cada linha reflete o último valor não nulo de b até aquela linha (7, depois 8 e depois 20), porque o frame da janela é RANGE UNBOUNDED PRECEDING.