# Sum — функция диаграммы

Sum() вычисляет итоговое значение агрегированных данных, выданное выражением или полем.

Синтаксис:

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

Возвращаемые типы данных: числовое значение

Аргументы

| Аргумент | Описание |
| --- | --- |
| expr | Выражение или поле, содержащее данные для измерения. |
| SetExpression | По умолчанию функция агрегирования агрегирует множество возможных записей, определенных выборкой. Альтернативный набор записей может быть определен выражением анализа множества. |
| DISTINCT | Если слово DISTINCT указывается до аргументов функции, все дубликаты, возникшие в результате оценки аргументов функции, будут проигнорированы.<br><br>Примечание к информацииНесмотря на то, что классификатор DISTINCT поддерживается, используйте его чрезвычайно осторожно, поскольку его использование может ввести в заблуждение — читатель может подумать, что показано итоговое значение, в то время как некоторые данные опущены. |
| TOTAL | Если слово TOTAL стоит перед аргументами функции, вычисление выполняется по всем возможным значениям, указанным в текущих выборках, а не только в тех, которые относятся к значению текущего измерения, т. е. измерения диаграммы игнорируются.<br><br>При использовании выражения TOTAL [&lt;fld {.fld}&gt;], где префикс TOTAL предшествует списку из одного или нескольких имен полей, выступающих в качестве подмножества переменных измерения диаграммы, создается подмножество всех возможных значений.<br><br>[Определение объема агрегирования](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Пример: выражения диаграммы

| Пример | Результат |
| --- | --- |
| `Sum(UnitSales)` | Возвращает итоговую сумму в `UnitSales`. |
| `Sum(UnitSales*UnitPrice)` | Возвращает итоговую сумму `UnitPrice`, умноженную на агрегированное значение `UnitSales`. |
| `Sum(TOTAL UnitSales*UnitPrice)` | Возвращает итоговую сумму всех строк в таблице, а также итоговое значение, поскольку квалификатор `TOTAL` означает, что сумма вычисляется без учета измерений диаграммы. |
| `Sum({1} TOTAL UnitSales*UnitPrice)` | Выражение анализа множеств `{1}` определяет набор записей для оценки в качестве `ALL`, независимо от выборки. |

## Пример. Основы использования функции Sum

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)

#### Выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `Customer`

  * `Product`

  * `UnitSales`

  * `UnitPrice`

Скрипт загрузки

```
Example:
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 '|');
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `Customer`

* `Product`

Создайте следующие меры:

* `=Sum(UnitSales)`, чтобы вычислить сумму `UnitSales`.

* `=Sum(UnitSales*UnitPrice)`, чтобы вычислить агрегированную итоговую сумму `UnitSales`, умноженную на `UnitPrice`.

* `=Sum(TOTAL UnitSales*UnitPrice)`, чтобы вычислить итоговую сумму для всех строк в таблице, а также итог, поскольку квалификатор `TOTAL` означает, что сумма одинакова для всех ячеек, так как не учитывает измерения диаграммы.

* `=Sum({1} TOTAL UnitSales*UnitPrice)`, чтобы вычислить итоговое значение, независимо от сделанной выборки, поскольку выражение анализа множеств `{1}` определяет набор записей для оценки в качестве элемента `ALL`, независимо от выборки.

Results table

| Customer | Product | Sum(UnitSales) | Sum(UnitSales\*UnitPrice) | Sum(TOTAL UnitSales\*UnitPrice) | Sum({1} TOTAL UnitSales\*UnitPrice) |
| --- | --- | --- | --- | --- | --- |
| Totals | - | 38 | 505 | 505 | 505 |
| Astrida | AA | 14 | 214 | 505 | 505 |
| Astrida | BB | 9 | 81 | 505 | 505 |
| Betacab | BB | 5 | 50 | 505 | 505 |
| Betacab | CC | 2 | 40 | 505 | 505 |
| Betacab | DD | 0 | 0 | 505 | 505 |
| Canutility | AA | 8 | 120 | 505 | 505 |
| Canutility | CC | 0 | 0 | 505 | 505 |

В этом примере обратите внимание на следующие данные:

* Для первой меры `Sum(UnitSales` ячейка `Totals` возвращает значение `38`, которое является итоговой суммой значений в ячейке `UnitSales` по всем клиентам и продуктам. Результаты для каждой комбинации клиента и продукта агрегируются, чтобы получить итоговую сумму `UnitSales` для каждой комбинации. Например, сумма всех `UnitSales` продукта `AA`, полученного от клиента `Astrida`, равна `14`.

* Для второй меры `Sum(UnitSales*UnitPrice)` ячейка `Totals` возвращает `505`. Это агрегированный итог `UnitSales`, умноженный на `UnitPrice` для каждой комбинации клиента и продукта.

* Для третьей меры `Sum(TOTAL UnitSales*UnitPrice)` значение, возвращаемое во всех строках, включая `Totals`, равно `505`, потому что квалификатор `TOTAL` не учитывает измерения диаграммы. Однако если создать выборку по такому измерению, как `Customer`, то значения изменятся. Например, если выбрать `Betacab`, в результирующей таблице будет только три строки, по одной для каждой из записей `Betacab`, но столбец будет возвращать одно и то же итоговое значение для всех строк (`90`).

* Четвертая мера (`Sum({1} TOTAL UnitSales*UnitPrice)`) возвращает `505` независимо от выборки, потому что выражение анализа множества `{1}` определяет набор записей, которые будут оцениваться как `ALL`. Если выбран клиент, например `Canutility`, то все равно будет возвращаться значение `505`.

## Пример. Сценарий использования функции Sum для агрегирования данных о продажах

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)

#### Выражение диаграммы

Обзор

Набор данных содержит показатели продаж для магазинов по региону. Компании требуется агрегировать продажи.

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `Month`

  * `SalesProduct`

  * `Region`

  * `Sales`

Скрипт загрузки

```
Example:
Load * inline [
Month,SalesProduct, Region, Sales
2024-01-01, T-shirt, East, 100
2024-01-01, T-shirt, West, 120
2024-01-01, Jeans, East, 200
2024-01-01, Jeans, West, 180
2024-02-01, T-shirt, East, 150
2024-02-01, T-shirt, West, 130
2024-02-01, Jeans, East, 250
2024-02-01, Jeans, West, 220
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую сводную таблицу и добавьте эти поля как измерения строк:

* `Month`

* `Region`

Добавьте это поле в качестве измерения столбца:

* `SalesProduct`

Создайте следующую меру:

* `=Sum(Sales)`, чтобы вычислить итоговые продажи для каждого продукта.

Чтобы развернуть сводную таблицу и увидеть все строки, на панели свойств в разделе Вид выберите Представление. В списке Строки установите флажок Полностью развернутая.

Results table

| Month<br>Region | SalesProduct |  |
| --- | --- | --- |
| Jeans | T-shirt |  |
| 2024-01-01 | 380 | 220 |
| East | 200 | 100 |
| West | 180 | 120 |
| 2024-02-01 | 470 | 280 |
| East | 250 | 150 |
| West | 220 | 130 |

Результаты показывают продажи для каждого `SalesProduct` по `Month` и `Region`, с агрегированным итогом для каждого `Month`.

## Подробнее

* [Анализ множеств](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Определение объема агрегирования](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)