TSRunningMed 函数

TSRunningMed 函数计算运行窗口内的时间系列的中位数。只有在 Apply 函数内使用时此函数才有用。

语法

TSRunningMed(value      double precision, 
              num_values integer) 
returns double precision;

TSRunningMed(value      real, 
              num_values integer) 
returns double precision;
value
用于计算运行中位数的第一个输入值。通常,是时间系列中的 DOUBLE、FLOAT 或 REAL 列的名称。
num_values
在运行中位数内包括的值的数量,k

描述

此函数是运行固定数量的元素,而非运行固定时间长度;因此,它可能不适用于非常规时间系列。

生成前 (num_values - 1) 个输出的窗口较短(第一个输出从第一个输入时间派生,第二个输出从前两个输入时间派生,依此类推)。输入中的 Null 元素也会导致窗口变短。

返回结果

最后 k 个值的 DOUBLE PRECISION 运行中位数。

示例

此语句在 stock_datahigh 列的 10 个元素窗口中从运行中位数生成时间系列。您可以将时间系列的列作为 $colname$colnumber 引用:例如,$high$1
select stock_name, Apply('TSRunningMed($high, 10)', 
                stock_data::TimeSeries(stock_bar))::
      TimeSeries(one_real)
from daily_stocks;