TS_LAST_VALUE
处理属于每个时间片的数据。时序聚合 (TSA) 函数,TS_LAST_VALUE
返回时间片结束时的值,其中插值方案在缺少时间片时应用。在这种情况下,根据常数(线性)插值方案由对应于上一个(和下一个)时间片的值来确定值。
TS_LAST_VALUE
将为每个时间片返回一个输出行,如果指定了分区表达式,则为每个时间片的每个分区返回一个输出行。
行为类型
不可变语法
TS_LAST_VALUE ( expression [ IGNORE NULLS ] [, { 'CONST' | 'LINEAR' } ] )
参数
- 表达式
- 聚合和内插所基于的
INTEGER
或FLOAT
表达式。 IGNORE NULLS
IGNORE NULLS
行为将根据CONST
或LINEAR
插值方案发生变化。有关详细信息,请参阅分析数据中的时序数据何时包含 NULL 值。'CONST' | 'LINEAR'
- 将插值指定为常数或线性:
-
CONST
(默认值):基于以前的输入记录内插新值。 -
LINEAR
:基于指定的时间片将值内插到线性斜率中。
-
要求
您必须将 ORDER BY
子句与 TIMESTAMP
列一起使用。
多个时序聚合函数
同一个查询可以调用多个时序聚合函数。按照 TIMESERIES 子句的定义,它们共享同一个空白填充策略;然而,每个时序聚合函数可以指定自己的插值策略。例如:
=> SELECT slice_time, symbol,
TS_FIRST_VALUE(bid, 'const') fv_c,
TS_FIRST_VALUE(bid, 'linear') fv_l,
TS_LAST_VALUE(bid, 'const') lv_c
FROM TickStore
TIMESERIES slice_time AS '3 seconds'
OVER(PARTITION BY symbol ORDER BY ts);
示例
请参阅分析数据中的空白填充和插值。