我知道有一个名为max()的函数,但它显然不会起作用,因为$ puntuacion没有收集,但单个值显示为dinamically。那么,我怎样才能获得最大的比赛分数?
/* 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>
答案 0 :(得分:1)
让我们解构您的查询:它表示采用摘要元素的序列,并为每个元素计算该摘要中的分数总和(即将每个团队的分数相加),然后取最大值单一价值。
如果您想获得这些值的最大值,则需要将最大调用包含在FLWOR表达式中:max(for $match in //summary return sum($match/team/@score))