# Sum - função de gráfico

Sum() calcula o total dos valores dados pela expressão ou campo em todos os dados agregados.

Sintaxe:

Sum([{SetExpression}] [DISTINCT] [TOTAL [&lt;fld {,fld}&gt;]] expr)

Tipo de dados de retorno: numérico

Argumentos:

* expr: A expressão ou campo que contém os dados a serem medidos.

* SetExpression: Por padrão, a função de agregação agregará um conjunto de registros possíveis definidos pela seleção. Um conjunto de registros alternativos pode ser definido por uma expressão de análise.

* DISTINCT: Se a palavra DISTINCT aparecer antes dos argumentos de função, as duplicatas resultantes da avaliação dos argumentos de função serão ignoradas.

  Nota informativaEmbora o qualificador DISTINCT não seja suportado, use-o com extrema cautela, já que ele poderá confundir o leitor a pensar que o valor total é mostrado quando alguns dados foram omitidos.

* TOTAL: Se a palavra TOTAL ocorrer antes dos argumentos da função, o cálculo é feito sobre todos os valores possíveis, dadas as seleções atuais, e não apenas sobre os pertinentes ao valor dimensional atual, isto é, desconsiderando as dimensões do gráfico. O qualificador TOTAL pode vir seguido de uma lista de um ou mais nomes de campos dentro de sinais de maior e menor que &lt;fld&gt;. Esses nomes de campos devem ser um subconjunto das variáveis de dimensões do gráfico.

  [Definindo o escopo de agregação](https://help.qlik.com/pt-BR/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)

Exemplos:

Exemplos e resultados

| Exemplo | Resultado |
| --- | --- |
| `Sum(UnitSales)` | 38. O total dos valores em `UnitSales`. |
| `Sum(UnitSales*UnitPrice)` | 505. O total de `UnitPrice` multiplicado pelos `UnitSales` agregados. |
| `Sum(TOTAL UnitSales*UnitPrice)` | 505 para todas as linhas da tabela, além do total, pois o qualificador TOTAL significa que a soma ainda é 505, desconsiderando as dimensões do gráfico. |
| Faça a seleção`  Customer B `.<br><br>`Sum({1} TOTAL UnitSales*UnitPrice)` | 505, independentemente da seleção feita, porque a Set Analysisexpressão {1} define o conjunto de registros a ser avaliado como ALL, independente da seleção feita. |

**Dados usados nos exemplos:**

`ProductData:` `LOAD * inline [` `Customer|Product|UnitSales|UnitPrice` `Astrida|AA|4|16` `Astrida|AA|10|15` `Astrida|BB|9|9` `Betacab|BB|5|10` `Betacab|CC|2|20` `Betacab|DD||25` `Canutility|AA|8|15` `Canutility|CC||19` `] (delimiter is '|');`

Dados de exemplo em formato de tabela

| Customer | Product | UnitSales | UnitPrice |
| --- | --- | --- | --- |
| Astrida | AA | 4 | 16 |
| Astrida | AA | 10 | 15 |
| Astrida | BB | 9 | 9 |
| Betacab | BB | 5 | 10 |
| Betacab | CC | 2 | 20 |
| Betacab | DD | - | 25 |
| Canutility | AA | 8 | 15 |
| Canutility | CC | - | 19 |

## Saiba mais

* [Análise de conjunto e expressões de conjunto](https://help.qlik.com/pt-BR/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Definindo o escopo de agregação](https://help.qlik.com/pt-BR/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)