TSRunningVar 函数计算运行窗口内的时间系列的方差。
TSRunningVar(value double precision, num_values integer) returns double precision; TSRunningVar(value real, num_values integer) returns double precision;
在 Apply 函数内使用 TSRunningVar 函数。
此函数是运行固定数量的元素,而非运行固定时间长度;因此,它可能不适用于非常规时间系列。
前 (num_values - 1) 个输出为例外情况,因为它们源自较短的窗口(第一个输出从第一个输入时间派生,第二个输出从前两个输入时间派生,依此类推)。输入中的 Null 元素也会导致窗口变短。
TSRunningVar 函数可以采用作为时间系列的列的参数。使用 Apply 函数接受的相同参数格式。
最后 k 个值的 DOUBLE PRECISION 运行方差。
此语句使用与 stock_data 相同的长度和日历、但非时间戳记的数据列生成时间系列。输出的元素 n 是 stock_bar 元素 n-19、n-18、...n 的第 1 列的差异。输出的前 19 个元素略有不同:第一个元素是 NULL,因为没有为系列 1 定义差异。第二个输出元素是前两个输入元素的差异,依此类推。
select stock_name, Apply('TSRunningVar($0.high, 20)', stock_data::TimeSeries(stock_bar)):: TimeSeries(one_real) from daily_stocks;