TS_FIRST_VALUE

处理属于每个时间片的数据。时序聚合 (TSA) 函数,TS_FIRST_VALUE 返回时间片开始时的值,其中插值方案在缺少时间片时应用,在这种情况下,根据常数(线性)插值方案由对应于上一个(和下一个)时间片的值来确定值。

TS_FIRST_VALUE 将为每个时间片返回一个输出行,如果指定了分区表达式,则为每个时间片的每个分区返回一个输出行。

行为类型

不可变

语法

TS_FIRST_VALUE ( expression [ IGNORE NULLS ] [, { 'CONST' | 'LINEAR' } ] )

参数

表达式
聚合和内插所基于的 INTEGERFLOAT 表达式。
IGNORE NULLS
IGNORE NULLS 行为将根据 CONSTLINEAR 插值方案发生变化。有关详细信息,请参阅分析数据中的时序数据何时包含 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);

示例

请参阅分析数据中的空白填充和插值

另请参阅