All Products
Search
Document Center

Realtime Compute for Apache Flink:LAST_VALUE

Last Updated:Mar 26, 2026

LAST_VALUE mengembalikan nilai non-null terakhir dalam suatu aliran data di dalam jendela OVER. Fungsi ini digunakan untuk melacak nilai valid terbaru untuk setiap partisi saat catatan baru tiba.

Batasan

Hanya didukung di Realtime Compute for Apache Flink yang menggunakan Ververica Runtime (VVR) 3.0.0 atau versi lebih baru.

Sintaksis

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

Parameter input

ParameterTipe dataDeskripsi
valueSemua tipe dataNilai yang akan dievaluasi. Nilai null dilewati.
orderBIGINTKunci peringkat yang menentukan catatan mana yang dianggap terakhir. Catatan non-null dengan nilai order terbesar dikembalikan.
Penting

Semua parameter input harus memiliki tipe data yang sama.

Nilai kembalian

Mengembalikan tipe data yang sama dengan value.

Catatan penggunaan

Menggunakan parameter order

Ketika Anda memberikan nilai order, LAST_VALUE memilih catatan non-null dengan nilai order terbesar, bukan berdasarkan urutan pemrosesan.

Contoh

Data uji (tabel T1)

a (BIGINT)b (INT)c (VARCHAR)
11Hello
22Hello
33Hello
44Hello
55Hello
66Hello
77NULL
87Hello World
98Hello World
1020Hello World

Pernyataan uji

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

Hasil

c (VARCHAR)var1 (INT)
Hello1
Hello2
Hello3
Hello4
Hello5
Hello6
NULL7
Hello World7
Hello World8
Hello World20

Baris NULL pada kolom c mengembalikan var1 = 7 karena partisi tersebut hanya berisi satu baris (b = 7). Untuk partisi Hello World, setiap baris mencerminkan nilai b non-null terakhir hingga dan termasuk baris tersebut (7, lalu 8, lalu 20), karena kerangka jendela menggunakan RANGE UNBOUNDED PRECEDING.