Tüm Ürünler
Search
Belge Merkezi

Realtime Compute for Apache Flink:LAST_VALUE

Son Güncelleme:Oct 04, 2026

LAST_VALUE işlevi, OVER penceresi içindeki bir veri akışındaki son boş olmayan (non-null) değeri döndürür. Yeni kayıtlar geldikçe her bölüm için en güncel geçerli değeri izlemek amacıyla bu işlevi kullanın.

Sınırlamalar

Bu işlev yalnızca Ververica Runtime (VVR) 3.0.0 veya sonraki sürümlerini kullanan Realtime Compute for Apache Flink ortamlarında desteklenir.

Söz dizimi

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

Giriş parametreleri

Parametre Veri türü Açıklama
value Herhangi bir veri türü Değerlendirilecek değer. Boş (null) değerler atlanır.
order BIGINT Hangi kaydın son olarak kabul edileceğini belirleyen sıralama anahtarı. En büyük order değerine sahip boş olmayan kayıt döndürülür.
Önemli

Tüm giriş parametreleri aynı veri türünde olmalıdır.

Dönüş değeri

value parametresiyle aynı veri türünü döndürür.

Kullanım notları

**order parametresinin kullanımı**

Bir order değeri sağladığınızda, LAST_VALUE işlevi işlem sırasına güvenmek yerine en büyük order değerine sahip boş olmayan kaydı seçer.

Örnek

Test verileri (T1 tablosu)

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

Test ifadesi

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

Sonuç

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

c sütunundaki NULL satırı, ilgili bölümde yalnızca tek bir satır (b = 7) bulunduğundan var1 = 7 değerini döndürür. Hello World bölümü için ise her satır, o satıra kadar (o satır dahil) olan son boş olmayan b değerini yansıtır (sırasıyla 7, 8 ve 20). Bunun nedeni pencere çerçevesinin RANGE UNBOUNDED PRECEDING olarak ayarlanmış olmasıdır.