XQUERY滚动窗口 用于翻转窗口$w英寸(2,4,6,8,10,12,14) fn:true()时从$s开始 当$e-$s等式2时,仅以$e结尾 返回{$w}
上述查询的结果:XQUERY滚动窗口 用于翻转窗口$w英寸(2,4,6,8,10,12,14) fn:true()时从$s开始 当$e-$s等式2时,仅以$e结尾 返回{$w},xquery,Xquery,上述查询的结果: 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> 246 8 10 12 有人能解释一下原因吗?为什么只有3个值,如何得到2 4 6或8 10 12?示例 <window>2 4 6</
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>
246
8 10 12
有人能解释一下原因吗?为什么只有3个值,如何得到2 4 6或8 10 12?示例
<window>2 4 6</window>
<window>8 10 12</window>
用于翻转窗口$w英寸(2,4,6,8,10,12,14)
fn:true()时从$s开始
当$e-$s等式2时,仅以$e结尾
返回{$w}
似乎直接取自规范,这对结果有很好的解释:
窗口是通过迭代绑定中的项来创建的
顺序,按顺序,标识项目的开始项和结束项
通过评估WindowsStartCondition和
WindowEndCondition。如果
when关键字后面表达式的有效布尔值
这是真的。窗口的开始项是满足以下条件的项:
窗口开始条件(参见3.10.4.1翻转窗口和3.10.4.2
滑动窗口以获得更完整的解释。)的结束项
窗口是绑定序列中的第一项,从
满足WindowEndCondition的开始项(再次参见3.10.4.1
滚动窗和3.10.4.2滑动窗,了解更多详细信息。)每个
窗口包含其开始项、结束项和所有出现的项
在它们之间的绑定序列
如果窗口类型为翻滚,则窗口从不重叠。搜寻
因为第一个窗口的开头是从第一个窗口的开头开始的
结合序列。生成每个窗口后,搜索
下一个窗口的开始以绑定序列中的项开始
在最后生成的窗口的结束项之后发生。因此
在一个窗口中出现的项目不能出现在另一个窗口中
来自相同的绑定序列(除非序列包含相同的
项目(不止一次)
因此,当绑定序列为2,4,6,8,10,12,14时,使用定义的变量从$s开始
并且仅在$e结束
是位置变量:
起始项位置:(可选)绑定到
绑定序列中的第一个窗口项。起始项位置为
位置变量;因此,其类型为xs:integer结束项位置:
(可选)绑定到中最后一个窗口项的序号位置
结合序列。最终项目位置是一个位置变量;
因此,它的类型是xs:integer
对于第一个项目2
和第三个项目6
,位置值3-1
为2
,因此第一个窗口包含2,4,6
,然后,在位置4
处搜索新窗口以8
开始,在位置6
处以12
结束,因为6-4
也是2
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>