本文为您介绍如何使用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