时间序列函数
以下函数旨在与 timeSeries*() 聚合函数一起使用,例如
timeSeriesInstantRateToGrid,
timeSeriesLastToGrid 等。
timeSeriesRange
生成时间戳范围。
语法
参数
- start_timestamp- 范围的开始。
- end_timestamp- 范围的结束。
- step- 范围的步长,以秒为单位。
返回值
- 返回时间戳范围 [start_timestamp, start_timestamp + step, start_timestamp + 2 * step, ..., end_timestamp]。
示例
查询:
结果:
注意
- 如果函数 timeSeriesRange()的start_timestamp等于end_timestamp,则返回包含该时间戳的 1 元素数组:[start_timestamp]
- 函数 timeSeriesRange()与函数 range 类似。 例如,如果时间戳类型为DateTime64(3)且start_timestamp < end_timestamp,那么timeSeriesRange(start_timestamp, end_timestamp, step)返回的结果与以下表达式相同:
timeSeriesFromGrid
将值数组 [value1, value2, value3, ..., valueN] 转换为元组数组
[(start_timestamp, value1), (start_timestamp + step, value2), (start_timestamp + 2 * step, value3), ..., (end_timestamp, valueN)]。
如果某些值 [value1, value2, value3, ...] 为 NULL,则该函数不会将这些空值复制到结果数组中,
但仍会增加当前时间戳,即例如对于 [value1, NULL, value2],函数将返回
[(start_timestamp, value1), (start_timestamp + 2 * step, value2)]。
当前时间戳会按步长增加,直到它大于 end_timestamp,每个时间戳将与指定值数组中的值结合。如果值的数量与时间戳的数量不匹配,函数将抛出异常。
语法
参数
- start_timestamp- 网格的开始。
- end_timestamp- 网格的结束。
- step- 网格的步长,以秒为单位。
- values- 值数组- [value1, value2, ..., valueN]。
返回值
- 返回源值数组中的值与由 start_timestamp和step描述的规则时间网格相结合的时间戳。
示例
查询:
结果:
注意
函数 timeSeriesFromGrid(start_timestamp, end_timestamp, step, values) 返回的结果与以下表达式相同:
