Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:LAST_VALUE

Última atualização: Jun 27, 2026

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

Limites

Compatível apenas com o Realtime Compute for Apache Flink que usa 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

Valor a avaliar. A função ignora valores nulos.

order

BIGINT

Chave de classificação que define qual registro é considerado o último. A função retorna o registro não nulo com o maior valor de order.

Importante

Todos os parâmetros de entrada devem ter o mesmo tipo de dados.

Valor retornado

Retorna o mesmo tipo de dados de value.

Notas de uso

**Uso do parâmetro order**

Ao fornecer um valor para order, LAST_VALUE selecione 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 com NULL na coluna c retorna var1 = 7 porque essa partição contém apenas uma linha (b = 7). Na partição Hello World, cada linha reflete o último valor não nulo de b até aquela posição inclusive (7, depois 8 e então 20), pois o quadro da janela é RANGE UNBOUNDED PRECEDING.