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

Count() используется для агрегирования текстовых и числовых значений в каждом измерении диаграммы.

Синтаксис:

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

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

Аргументы

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

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

| Пример | Результат |
| --- | --- |
| `Count(OrderNumber)` | Возвращает количество строк, которые могут содержать значение для `OrderNumber`. Учитываются все записи, даже пустые.<br><br>Примечание к информации«0» считается значением, а не пустой ячейкой. Тем не менее, если мера агрегирует значение для измерения до 0, это измерение не будет включено в диаграммы. |
| `Count(Customer)` | Оценивает число вхождений во всех строках. |
| `Count(DISTINCT [Customer])` | Квалификатор `DISTINCT` ограничивает `Count` только оценкой уникальных вхождений. |
| `Count(OrderNumber)/Count({1} TOTAL OrderNumber)` | Выражение возвращает число заказов выбранного клиента в виде процентного соотношения заказов всех клиентов. |
| `Count(TOTAL <Product> OrderNumber)` | Возвращает количество размещенных заказов на продукты только для выбранных клиентов. Пустые ячейки также подсчитываются. |

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/CounterAggregationFunctions/count.htm)

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

Обзор

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

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

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

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

  * `Customer`

  * `Product`

  * `OrderNumber`

  * `UnitSales`

  * `UnitPrice`

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

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

Результаты

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

* `Customer`

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

* `=Count(OrderNumber)`, чтобы подсчитать количество заказов.

* `=Count(Customer)`, чтобы вычислить количество записей о клиентах.

* `=Count(DISTINCT Customer)`, чтобы подсчитать количество уникальных клиентов.

* `=Count(OrderNumber)/Count({1} TOTAL OrderNumber)`, чтобы подсчитать отношение заказов выбранных клиентов к общему количеству заказов клиентов.

* `=Count(TOTAL <Product> OrderNumber)`, чтобы подсчитать количество размещенных заказов на продукты только для выбранных клиентов (пустые ячейки учитываются).

Results table

| Customer | Count(OrderNumber) | Count(Customer) | Count(DISTINCT Customer) | Count(OrderNumber)/Count({1} TOTAL OrderNumber) | Count(TOTAL &lt;Product&gt; OrderNumber) |
| --- | --- | --- | --- | --- | --- |
| Totals | 10 | 10 | 4 | 1 | 10 |
| Astrida | 3 | 3 | 1 | 0.3 | 10 |
| Betacab | 3 | 3 | 1 | 0.3 | 10 |
| Canutility | 2 | 2 | 1 | 0.2 | 10 |
| Divadip | 2 | 2 | 1 | 0.2 | 10 |

Оценивая результаты, можно заметить следующее:

* Первая мера: в наборе данных есть `10` записей заказов.

* Вторая мера: в наборе данных есть `10` записей клиентов.

* Третья мера: в наборе данных есть `4` разных (уникальных) клиента.

* Четвертая мера: возвращает `1`, потому что не применена выборка. Если выбрать клиента `Canutility`, значение изменится на `0.2`, потому что для него существует `2` записи о заказах из `10` всех записей в наборе данных.

* Пятая мера: возвращает `10`, потому что не применена выборка. Если выбрать клиентов `Astrida` и `Canutility`, значение изменится на `5`, поскольку это число размещенных заказов на продукты только для этих клиентов (пустые ячейки также учитываются).

## Пример. Использование функции Count для определения количества продаж по продуктам

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/CounterAggregationFunctions/count.htm)

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

Обзор

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

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

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

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

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

  * `Product`

  * `Sales`

  * `Region`

  * `Status`

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

```
Example:
Load * inline [
Product,Sales,Region,Status
Apple, 100, North, Completed
Banana, 80, South, Pending
Carrot, 50, East, Completed
Apple, 120, North, Completed
Banana, 90, South, Completed
Carrot, 60, West, Pending
Apple, 110, North, Completed
Banana, 85, South, Completed
Carrot, 55, East, Pending
];
```

Результаты

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

* `Product`

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

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

* `=Count({<Status={'Completed'}>} Sales)`, чтобы вычислить количество продаж с выполненными заказами.

* `=Count({<Status={'Pending'}>} Sales)`, чтобы вычислить количество продаж с заказами, ожидающими выполнения.

* `=Count({<Region={'North'}>} Sales)`, чтобы вычислить количество заказов в регионе `North`.

Results table

| Product | Count(Sales) | Count({&lt;Status={'Completed'}&gt;} Sales) | Count({&lt;Status={'Pending'}&gt;} Sales) | Count({&lt;Region={'North'}&gt;} Sales) |
| --- | --- | --- | --- | --- |
| Totals | 9 | 6 | 3 | 3 |
| Apple | 3 | 3 | 0 | 3 |
| Banana | 3 | 2 | 1 | 0 |
| Carrot | 3 | 1 | 2 | 0 |

Функция `Count` возвращает разбивку итогового количества заказов на продажу по продуктам, а также количество выполненных заказов и количество заказов, ожидающих выполнения. Последняя мера возвращает количество записей продаж для региона `North`.