我完全不熟悉XML,而是XQuery。我有一个大的XML文件(~30 GB),我已经加载到Basex数据库中。我的问题是平均功能需要很长时间才能运行。
示例XML文件:
<a>
<b Id="1" Result="1"/>
<b Id="2" Result="2"/>
<b Id="1" Result="5"/>
<b Id="1" Result="510"/>
</a>
我想要Id = 1的平均结果。当我跑步时,
for $x in //a/b
where $x/@Id="1"
return $x/@Result
查询大约需要1-2秒。不错。但是,当我试图获得平均值时,查询永远不会结束(我让它运行10分钟)
avg(
for $x in //a/b
where $x/@Id="1"
return $x/@Result
)
发生了什么事?
如果我能提供便于回答的其他信息,请告诉我。
答案 0 :(得分:0)
尝试avg(// a / b [@ Id =“1”] / @ Result)。谓词比where子句更有效。