load: function() {
var chart = this,
points = this.series[0].data;
points.forEach(function(point) {
chart.xAxis[0].ticks[point.x].label.on('click', function() {
if (point.y === null) {
point.update({
y: point.holdY
});
}
});
});
}
以上查询的结果:
for tumbling window $w in (2, 4, 6, 8, 10, 12, 14)
start at $s when fn:true()
only end at $e when $e - $s eq 2
return <window>{ $w }</window>
有人可以解释为什么它&lt; 2 4 6&gt;,&lt; 8 10 12&gt; ?为什么只有3个值&lt; 2 4 6&gt;,&lt; 8 10 12&gt;,以及如何获得2 4 6或8 10 12?
答案 0 :(得分:4)
示例
for tumbling window $w in (2, 4, 6, 8, 10, 12, 14)
start at $s when fn:true()
only end at $e when $e - $s eq 2
return <window>{ $w }</window>
似乎直接来自规范https://www.w3.org/TR/xquery-30/#id-tumbling-windows,并且对结果有一些很好的解释:
通过迭代绑定中的项目来创建Windows 序列,按顺序,识别开始项目和结束项目 通过评估WindowStartCondition和每个窗口 WindowEndCondition。如果满足以下条件,则满足这些条件 when关键字后面的表达式的有效布尔值 是真的。窗口的开始项是满足的项 WindowStartCondition(参见3.10.4.1翻滚Windows和3.10.4.2 滑动Windows以获得更完整的解释。)最终项目 window是绑定序列中的第一项,以。开头 开始项,满足WindowEndCondition(再次参见3.10.4.1 翻滚Windows和3.10.4.2滑动Windows以获取更多详细信息。)每个 窗口包含其开始项目,最终项目以及发生的所有项目 它们之间的结合序列。
如果窗口类型翻滚,则窗口永远不会重叠。搜索 从第一个窗口的开始开始 结合序列。生成每个窗口后,搜索到 下一个窗口的开始以绑定序列中的项开始 在最后生成的窗口的结束项之后发生。从而, 在一个窗口中出现的项目不会出现在另一个窗口中 来自相同的结合序列(除非序列包含相同的序列) 项目不止一次)。
因此,绑定序列为2, 4, 6, 8, 10, 12, 14
时,使用start at $s
和only end at $e
定义的变量是位置的:
开始项目位置:(可选)绑定到的序号位置 绑定序列中的第一个窗口项。开始项目位置是一个 位置变量;因此,它的类型是xs:integer End-item-position: (可选)绑定到最后一个窗口项的序号位置 结合序列。结束项目位置是位置变量; 因此,它的类型是xs:integer
对于第一项2
和第三项6
,位置值3 - 1
为2
,因此第一个窗口包含2, 4, 6
,然后搜索对于新窗口,8
位于4
,12
位于6
,6 - 4
也是2
。