.. _sum: === sum === A soma dos valores de uma sequência Descrição ~~~~~~~~~ A função fn:sum soma os valores de uma sequência. A sequência $arg pode misturar valores numéricos e sem tipo. Os valores numéricos são promovidos quando preciso para ficarem todos do mesmo tipo. Valores sem tipo são convertidos em xs:double. A função também serve para durações: a sequência $arg pode ter só valores xs:yearMonthDuration ou só valores xs:dayTimeDuration (mas não uma mistura dos dois). O argumento $zero define outro valor para a soma da sequência vazia. Se $arg for a sequência vazia e $zero for informado, a função devolve $zero. $zero pode ser a sequência vazia, o inteiro 0, o valor NaN, uma duração de zero segundo ou qualquer outro valor atômico. .. list-table:: :widths: 40 60 :header-rows: 1 * - **Parâmetros** - **Descrição** * - arg:numeric() - a sequência de valores a somar * - zero:numeric() - o valor devolvido quando a sequência é vazia; opcional, 0 por padrão Exemplos ~~~~~~~~ Os exemplos abaixo usam este documento de entrada: .. code-block:: xml .. list-table:: :widths: 50 50 :header-rows: 1 * - **XPath** - **Resultado** * - sum( (1, 2, 3) ) - 6 * - sum($ordDoc//item/@quantity) - 7 * - sum($ordDoc//item/@dept) - Error FORG0001 * - sum( (xs:yearMonthDuration('P1Y2M'), xs:yearMonthDuration('P2Y3M')) ) - P3Y5M * - sum( (1, 2, 3, () ) ) - 6 * - sum( (1, 2, xs:yearMonthDuration('P1Y')) ) - Error FORG0006 * - sum( () ) - 0 * - sum( (), () ) - () Veja também ~~~~~~~~~~~ .. toctree:: :titlesonly: :glob: * :ref:`count`. * :ref:`avg`.