Примечание |
---|
Помимо настройки формул агрегации полей (в том числе расчетных агрегатов) синтаксис формул также применим для расчетных переменных и 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. Пример результата работы формулы «Подсчет процента от первого (максимального) значения по году»
Рисунок 9. Пример результата работы формулы «Расчет доли в процентном соотношении промежуточной агрегации»
При наведении на результат агрегации в виджете отображается подсказка с информацией об используемом виде агрегации. Для вида агрегации «Формула» в подсказке отображается наименование формулы (Рисунок «Отображение подсказки с информацией о формуле»).
Для других агрегаций в подсказке отображается наименование агрегации (сумма, количество и т.д.) (Рисунок «Отображение подсказки с информацией о виде агрегации»).
Сопоставление тегов и агрегаций приведено на рисунке ниже (Рисунок «Сопоставление тегов и агрегаций»).