Вид агрегации «Формула»


Для всех типов полей доступна агрегация с типом «Формула». При выборе вида агрегации «Формула» по умолчанию отображается поле «Формула» (Рисунок «Поле «Формула») для ввода формулы с отметкой «Основная», которая означает, что формула используется. Если поле «Формула» не заполнено, то по умолчанию применяется агрегация вида «Количество уникальных».

Рисунок 1. Поле «Формула»

Поле «Формула»

Для добавления новой формулы нажмите на кнопку «Добавить формулу» (Кнопка «Добавить формулу»). Введите SQL-скрипт в поле ввода формулы. Для расчета используется только формула с пометкой «Основная».

Примечание
Для удобства настройки в поле ввода SQL-скрипта при вводе первых букв отображаются значения справочников (IntelliSense) и подсветка синтаксиса. Справочники реализованы по полям модели, ключевым словам (select, from и др.), алиасам (при выборе алиаса в выпадающем списке в формуле указывается код выбранного поля для корректной работы запроса).

Рисунок 2. Кнопка «Добавить формулу»

Кнопка «Добавить формулу»

Для изменения формулы нажмите на кнопку напротив необходимой формулы и выберите пункт «Настройки» (Рисунок «Настройки формулы»).

Рисунок 3. Настройки формулы

Настройки формулы

Откроется окно дополнительных настроек формулы (Рисунок «Дополнительные настройки формулы с типом «Число (дробное)»).

Рисунок 4. Дополнительные настройки формулы с типом «Число (дробное)»

Дополнительные настройки формулы с типом «Число (дробное)»

Заполните поля:

  • «Тип» – выберите значение из выпадающего списка. Возможные значения:

    • «Логическое»;

    • «Дата»;

    • «Число (дробное)» – установлено по умолчанию;

    • «Число (целое)»;

    • «Строка».

  • «Число знаков после запятых» – введите значение с клавиатуры. Доступно для заполнения, если в поле «Тип» выбрано значение «Число (дробное)»;

  • «Разделитель дробной части» – введите значение с клавиатуры. Доступно для заполнения, если в поле «Тип» выбрано значение «Число (дробное)»;

  • «Разделитель тысяч» – введите значение с клавиатуры. Доступно для заполнения, если в поле «Тип» выбрано значение «Число (дробное)»;

  • «Единицы измерения» – введите значение с клавиатуры.

Нажмите на кнопку «Сохранить».

Результат настройки формулы приведен на рисунке ниже (Рисунок «Результат настройки формулы»).

Рисунок 5. Результат настройки формулы

Результат настройки формулы

Для удаления формулы нажмите на кнопку и выберите пункт «Удалить» (см. Рисунок «Настройки формулы»).

Чтобы сделать формулу основной, нажмите на кнопку напротив неосновной формулы и выберите пункт «Сделать основной» (см. Рисунок «Настройки формулы»).

Для изменения названия формулы нажмите на заголовок и введите необходимое значение (Рисунок «Изменение названия формулы»).

Рисунок 6. Изменение названия формулы

Изменение названия формулы

Синтаксис формул

Примечание
Помимо настройки формул агрегации полей (в том числе расчетных агрегатов) синтаксис формул также применим для расчетных переменных и SQL-фильтрации виджетов.

Синтаксис формул в виджете похож на SQL (синтаксис формул аналогичен синтаксису формул, использующихся в Yandex DataLens).

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

Допустимый формат записи формул:

  • аргументы функций указываются в круглых скобках. Например: SUM([pole]). Несколько аргументов разделяются запятой;

  • имена полей указываются в квадратных скобках. Например, [pole];

  • указывайте значения полей и констант в допустимом формате. Константы разных типов данных:

    • целое число: 23, -4325653;

    • дробное число: 0.0234, -1.0 (разделитель для дробных чисел – точка);

    • дата: '2019-01-23';

    • дата и время: '2019-01-23 15:07:47';

    • строка: 'Строка';

    • логический: TRUE (1), FALSE (0).

  • синтаксис имен полей регистрозависимый. Например, если в формуле используется [POLE], а в данных есть только [pole] – использование [POLE] приведет к ошибке;

  • синтаксис функций регистронезависимый. Например, sum и SUM выполнят одну и ту же операцию.

  • возможные операторы:

    • арифметические: +, -, *, /;

    • возведение в степень: ^;

    • остаток от деления: %;

    • логические: AND, OR, NOT, IN, LIKE, IS TRUE, IS FALSE, BETWEEN;

    • сравнения: =, !=, <, <=, >, >=.

  • формула может быть записана в одну строку или в несколько строк.

Основным компонентом формул являются функции, которые позволяют выполнять различные операции над данными виджета.

Подробный список доступных функций с примерами представлен в приложении (Приложение А).

Примеры формул представлены в таблице ниже (Таблица «Примеры формул»).

Таблица 1. Примеры формул

Наименование Формула с примерами

1

Подсчет процента от первого (максимального) значения по году

Формула:


                                                      
sum ([jsql__summa_prodaz]) * 100
/max (sum([jsql__summa_prodaz]) total)

                                                      

где jsql__summa_prodaz – Сумма продаж.

Пример результата работы формулы представлен на рисунке ниже (Рисунок «Пример результата работы формулы «Подсчет процента от первого (максимального) значения по году»)

2

Подсчет процента от предыдущего значения

Формула:


                                                      
sum ([jsql__summa_prodaz])*100
/
(case when
RANK_DENSE(sum([jsql__summa_prodaz]),desc TOTAL)=1
then sum ([jsql__summa_prodaz])
else
lag(sum([jsql__summa_prodaz]), 1 total) end)

                                                      

где jsql__summa_prodaz – Сумма продаж.

Пример работы формулы представлен на рисунке ниже (Рисунок «Пример результата работы формулы «Подсчет процента от предыдущего значения»)

3

Расчет доли в процентном соотношении промежуточной агрегации

Формула:


                                                      
SUM([summa_prodaz])
/
SUM(SUM([summa_prodaz])) OVER() * 100

                                                      

Пример работы формулы представлен на рисунке ниже (Рисунок «Пример результата работы формулы «Расчет доли в процентном соотношении промежуточной агрегации»)

4

Нарастающий итог

Формула:


                                                      
sum(sum([summa_prodaz])TOTAL ORDER BY [gorod])

                                                      

Пример работы формулы представлен на рисунке ниже (Рисунок «Пример результата работы формулы «Нарастающий итог»)


Рисунок 7. Пример результата работы формулы «Подсчет процента от первого (максимального) значения по году»

Пример результата работы формулы «Подсчет процента от первого (максимального) значения по году»

Рисунок 8. Пример результата работы формулы «Подсчет процента от предыдущего значения»

Пример результата работы формулы «Подсчет процента от предыдущего значения»

Рисунок 9. Пример результата работы формулы «Расчет доли в процентном соотношении промежуточной агрегации»

Пример результата работы формулы «Расчет доли в процентном соотношении промежуточной агрегации»

Рисунок 10. Пример результата работы формулы «Нарастающий итог»

Пример результата работы формулы «Нарастающий итог»

При наведении на результат агрегации в виджете отображается подсказка с информацией об используемом виде агрегации. Для вида агрегации «Формула» в подсказке отображается наименование формулы (Рисунок «Отображение подсказки с информацией о формуле»).

Рисунок 11. Отображение подсказки с информацией о формуле

Отображение подсказки с информацией о формуле

Для других агрегаций в подсказке отображается наименование агрегации (сумма, количество и т.д.) (Рисунок «Отображение подсказки с информацией о виде агрегации»).

Рисунок 12. Отображение подсказки с информацией о виде агрегации

Отображение подсказки с информацией о виде агрегации

Сопоставление тегов и агрегаций приведено на рисунке ниже (Рисунок «Сопоставление тегов и агрегаций»).

Рисунок 13. Сопоставление тегов и агрегаций

Сопоставление тегов и агрегаций