Как получить максимальное значение переменной?XQUERY - PullRequest
0 голосов
/ 06 июня 2018

Я знаю, что есть функция с именем 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>

1 Ответ

0 голосов
/ 06 июня 2018

Давайте разберем ваш запрос: он говорит: возьмите последовательность итоговых элементов, и для каждого из них вычислите сумму баллов в этой сводке (т.е. сложите баллы от каждой команды), а затем возьмите максимум этогоодиночное значение.

Если вы хотите получить максимальное из этих значений, вам нужно, чтобы максимальный вызов был заключен в выражение FLWOR: max(for $match in //summary return sum($match/team/@score))

...