本文為您介紹如何使用LAST_VALUE函數,返回指定數據流的最后1條非NULL數據。

使用限制

僅實時計算引擎VVR 3.0.0及以上版本支持LAST_VALUE函數。

語法

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

入參

參數數據類型說明
value任意參數類型 指定數據流。
orderBIGINT根據order判定LAST_VALUE所在的行,取order值最大的記錄作為LAST_VALUE。
重要 所有輸入參數需要為相同的數據類型。

示例

  • 測試數據
    表 1. T1
    a(BIGINT)b(INT)c(VARCHAR)
    11Hello
    22Hello
    33Hello
    44Hello
    55Hello
    66Hello
    77NULL
    87Hello World
    98Hello World
    1020Hello World
  • 測試語句
    SELECT c,LAST_VALUE(b) 
    OVER (PARTITION BY c ORDER BY PROCTIME() RANGE UNBOUNDED PRECEDING) AS var1
    FROM T1;
  • 測試結果
    c(VARCHAR)var1(INT)
    Hello1
    Hello2
    Hello3
    Hello4
    Hello5
    Hello6
    NULL7
    Hello World7
    Hello World8
    Hello World20