如何获取变量的最大值?X查询



我知道有一个名为max((的函数,但它显然不起作用,因为$puntuacion没有集合,而是动态显示单个值。那么,我怎样才能获得最大的比赛分数呢?

/* this is xquery */
for $match in //summary
let $puntuacion := sum($match/team/@score)
return max($puntuacion)
<!-- this is key part of xml -->
<match>  
<summary>
<team name="Wales" score="19">
</team>
<team name="England" score="26">
</team>
</summary>
<summary>
<team name="Italy" score="11">
</team>
<team name="Ireland" score="13">
</team>
</summary>
</match>
<match>  
<summary>
<team name="Spain" score="20">
</team>
<team name="Croatia" score="15">
</team>
</summary>
<summary>
<team name="Germany" score="40">
</team>
<team name="France" score="36">
</team>
</summary>
</match>

让我们解构你的查询:它说取摘要元素的序列,对于每个元素,计算该摘要中的分数总和(即每个团队的分数相加(,然后取该单个值的最大值。

如果要获取这些值中的最大值,则需要将 max 调用包装在 FLWOR 表达式周围:max(for $match in //summary return sum($match/team/@score))

最新更新