示例:网格聚合
得到2013年3月5天间隔的最小收盘价:
SELECT symbol,
seq_search(day, 20130301, 20130331) as Mar_2013,
close@Mar_2013 as "close",
seq_grid_agg_min(close@Mar_2013, 5) as "min"
FROM Quote WHERE symbol='IBM';
symbol
Mar_2013{}
close{}
min{}
------------------------------------------------------------------------------
IBM
{20130301, 20130304, 20130305, 20130306, 20130307,
20130308, 20130311, 20130312, 20130313, 20130314,
20130315, 20130318, 20130319, 20130320, 20130321,
20130322, 20130325, 20130326, 20130327, 20130328}
{202.910004, 205.190002, 206.529999, 208.380005, 209.419998,
210.380005, 210.080002, 210.550003, 212.059998, 215.800003,
214.919998, 213.210007, 213.440002, 215.059998, 212.259995,
212.080002, 210.740005, 212.360001, 210.889999, 213.300003}
{202.910004, 210.080002, 212.259995, 210.740005}
请注意,虽然窗口聚合函数为序列元素的“滑动”块生成值,但网格聚合函数为连续的元素块生成输出。我们可以对上述输出进行如下分析:
- 为了方便起见,序列 Mar_2013 和 close 以每 5 个一组的形式进行格式化。
- 请注意,在序列 min 中有 4 个值(突出显示)与 5 笔交易的 4 个组块相对应(20 个交易日除以 5)。
- 这些 min 值与序列 close 中突出显示的值相对应,这些值是每个 5 笔交易组块中的最低值。
要使用 xSQL 演示此选择语句,可以从 samples/xsql/scripts/financial 目录中运行以下命令来执行示例脚本:
x 9