Перейти к основному содержимому

Особенности SQL-редактора (редактор со встроенным языком структурированных запросов)

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

Простой и расширенный подход

  • Базовый (интерфейсный) способ:

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

    Снимок экрана 2025-07-24 в 00.51.53.png

  • Расширенный (SQL-редактор):

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

    Снимок экрана 2025-07-24 в 00.54.35.png

Упрощённая структура SQL-запроса

SQL-запрос в редакторе автоматически оборачивается системой — пользователю нужно писать только основную часть выражения, которая отвечает за вычисления:

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

Пример:

fact / plan

Это выражение будет встроено в автоматически сформированный SQL-запрос.

SQL-редактор можно открыть не только на уровне всей таблицы, но и в отдельном показателе. В таком случае пользователь увидит только формулу конкретного расчета и может её изменить точечно.

Снимок экрана 2025-07-24 в 00.58.07.png

Карта модели

Для упрощения работы в редактор встроена карта модели данных:

  • Отображает все доступные поля таблиц;
  • Оснащена поиском;
  • Позволяет вставить нужное поле в текст запроса одним кликом.

Снимок экрана 2025-07-24 в 01.00.39.png

Это особенно полезно, если вы не помните точное имя поля.

Группировки, фильтры и сортировки

SQL-редактор поддерживает:

  • Группировки по полям;
  • Фильтрацию данных по условиям (например, только активные задачи);
  • Сортировку результатов — по убыванию, возрастанию и т.д.

Пример фильтра:

status = 'active'

Это позволит выводить, например, только те задачи, которые находятся в работе, исключая завершённые и не начатые.