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

Примечание
Помимо настройки формул агрегации полей (в том числе расчетных агрегатов) синтаксис формул также применим для расчетных переменных и 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. Сопоставление тегов и агрегаций

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