Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:LAST_VALUE

Dernière mise à jour :Aug 09, 2026

LAST_VALUE renvoie la dernière valeur non nulle d'un flux de données au sein d'une fenêtre OVER. Utilisez cette fonction pour suivre la dernière valeur valide de chaque partition à mesure que de nouveaux enregistrements arrivent.

Limites

Cette fonction est prise en charge uniquement dans Realtime Compute for Apache Flink utilisant Ververica Runtime (VVR) 3.0.0 ou une version ultérieure.

Syntaxe

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

Paramètres d'entrée

Paramètre Type de données Description
value Tout type de données La valeur à évaluer. Les valeurs nulles sont ignorées.
order BIGINT Clé de classement déterminant l'enregistrement considéré comme dernier. La fonction renvoie l'enregistrement non nul présentant la plus grande valeur order.
Important

Tous les paramètres d'entrée doivent être du même type de données.

Valeur de retour

Renvoie le même type de données que value.

Notes d'utilisation

**Utilisation du paramètre order**

Si vous fournissez une valeur order, LAST_VALUE sélectionne l'enregistrement non nul dont la valeur order est la plus élevée, au lieu de se fier à l'ordre de traitement.

Exemple

Données de test (table 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

Instruction de test

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

Résultat

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 ligne NULL dans c renvoie var1 = 7 car cette partition ne contient qu'une seule ligne (b = 7). Pour la partition Hello World, chaque ligne reflète la dernière valeur non nulle de b jusqu'à cette ligne incluse (7, puis 8, puis 20), car le cadre de la fenêtre est défini sur RANGE UNBOUNDED PRECEDING.