Примеры пользовательских отчётов
Познакомьтесь с полезными примерами SQL-запросов для создания пользовательских отчётов в Pyrus. Мы расскажем, как применять системные таблицы (#tasks, #events), а также псевдонимы и параметры для получения ценных данных для анализа и оптимизации рабочих процессов.
Общие статические отчёты
Распределение открытых задач по их статусам
Вводные данные: в форме настроено несколько статусов задачи.
Цель: понять, в каком статусе находятся открытые задачи в текущий момент.
Результат: круговая диаграмма, которая показывает долю каждого статуса в общем количестве открытых задач.

Введите следующий SQL-запрос:
SELECT
status AS "#status_name('Статус')",
COUNT(task_id) AS "Количество открытых задач"
FROM #tasks
WHERE is_closed = false
GROUP BY status
ORDER BY COUNT(task_id) DESC
LIMIT 100;
Откройте настройки полученного виджета и задайте параметры его отображения. Выберите Диаграмма, затем — Круговая диаграмма.
Подробнее о том, как задать визуализацию виджета
Распределение открытых задач по этапам
Вводные данные: в форме задана маршрутизация — этапы согласования задачи.
Цель: понять, на каких этапах согласования находятся открытые задачи в текущий момент.
Результат: круговая диаграмма, которая показывает долю каждого этапа в общем количестве открытых задач.

Введите следующий SQL-запрос:
SELECT
step AS "#step_name('Этап')",
COUNT(task_id) AS "Количество открытых задач"
FROM #tasks
WHERE is_closed = false
GROUP BY step
ORDER BY COUNT(task_id) DESC
LIMIT 100;
Откройте настройки полученного виджета и задайте параметры его отображения. Выберите Диаграмма, затем — Круговая диаграмма.
Нагрузка на сотрудников и число открытых просроченных задач
Вводные данные: в форме есть поле, в котором можно выбрать сотрудника из общего списка пользователей организации (в нашем примере это поле типа Ответственный — responsible_id).
Подсказка: вместо поля типа Ответственный можно использовать иные поля, которые возвращают id пользователя, например поле Автор (creator_id) или код поля типа Контакт.
Цель: выявить загруженность сотрудников и текущей уровень их просроченных задач.
Результат: Круговая диаграмма, которая показывает количество открытых задач на каждого сотрудника, в том числе сколько из этих задач просрочено.

Введите следующий SQL-запрос:
SELECT
responsible_id AS "#person_full_name('Ответственный')",
COUNT(task_id) AS "Открытых задач",
COUNT(task_id) FILTER (WHERE is_overdue = true) AS "Просрочено"
FROM #tasks
WHERE is_closed = false
GROUP BY responsible_id
ORDER BY COUNT(task_id) DESC
LIMIT 100;
Откройте настройки полученного виджета и задайте параметры его отображения. Выберите Диаграмма, затем — Круговая диаграмма.
Распределение открытых задач по другим полям формы
Вводные данные: в форме есть поле, по значению которого классифицируются задачи, например канал обращения(в примере используется поле типа Выбор с кодом поля ${Канал обращения}).
Подсказка: кроме поля типа Выбор можно обращаться к иным числовым типам данных, например к полю типа Справочник, или полю типа Галочка. При этом в запросе нужно изменить псевдонимы.
См. подробнее о применении псевдонимов
Цель: Проанализировать, по каким категориям распределены открытые задачи на текущий момент.
Результат: круговая диаграмма, которая показывает долю каждой категории в общем количестве открытых задач.

Введите следующий SQL-запрос:
SELECT
${Канал обращения} AS "#choice_name(${Канал обращения}, ‘Канал’),
COUNT(task_id) AS "Количество задач"
FROM #tasks
WHERE is_closed = false
GROUP BY ${Канал обращения}
ORDER BY COUNT(task_id) DESC
LIMIT 100;
Откройте настройки полученного виджета и задайте параметры его отображения. Выберите Диаграмма, затем — Круговая диаграмма.
Группировка данных (CASE/WHEN)
Отчёты строятся по текущим значениям полей формы Pyrus и не изменяются при изменении фильтров или временных интервалов.
Сегментация по числовому полю
Вводные данные: в форме есть поле типа Число.
Подсказка: вместо обращения к полю типа Число можно обращаться к иным числовым типам данных, например к коду поля типа Деньги .
Цель: проанализировать числовые данные не по отдельным значениям, а по заданным категориям.
Результат: круговая диаграмма, которая показывает долю каждой группы в общем бизнес-процессе.
Для анализа числовых/денежных типов данных удобно объединять данные в различные группы.
Рассмотрим вариант разделения данных на группы с помощью оператора CASE:
- Группа 1 для значений <100000;
- Группа 2 для значений от 100000 до 1000000;
- Группа 3 для значений больше 1000000.

Введите следующий SQL-запрос:
SELECT
CASE
WHEN ${Число} < 100000 THEN 'до 100 000р'
WHEN ${Число} < 1000 THEN 'до 1 000 000р'
ELSE 'свыше 1 000 000р'
END AS "Сумма договоров",
COUNT(task_id) AS "Количество задач"
FROM #tasks
WHERE is_closed = false
GROUP BY "Диапазон значений"
ORDER BY "Количество задач"
LIMIT 100;
Откройте настройки полученного виджета и задайте параметры его отображения. Выберите Диаграмма, затем — Круговая диаграмма.
Анализ по временным интервалам
Вводные данные: В форме есть поле типа Дата и время.
Подсказка: вместо обращения к полю типа Дата можно использовать иные типы данных Дата и время, например, системные поля типа Срок (due) или Дата создания (create_date) и др.
Цель: проанализировать данные Дата и Время не по отдельным значениям, а по заданным категориям (группам).
Результат: круговая диаграмма, которая показывает долю каждого временного интервала в общем бизнес-процессе, например, количество подписанных контрактов за определенный отрезок времени — за последние три дня, неделю и более недели.
Для анализа событий в определенных временных интервалах удобно объединять данные в различные группы. Рассмотрим, как выполнить такое разделение с помощью оператора CASE для значений поля типа Дата и время с кодом ${Дата}. Будем использовать следующие наименования:
- Последние 3 дня — для значений поля <100 (все открытые задачи, в которых дата указана за последние 3 дня);
- 7 дней назад — для значений от 100 до 1000 (все открытые задачи, в которых дата указана с 4 по 7 день);
- Более 7 дней назад — для значений больше 1000 (все открытые задачи, в которых дата более 7 дней назад).

Введите следующий SQL-запрос:
SELECT
CASE
WHEN ${Дата} >= today() - 3 THEN 'Последние 3 дня'
WHEN ${Дата} >= today() - 7 THEN '7 дней назад'
ELSE 'Более 7 дней назад'
END AS "Период",
COUNT(task_id) AS "Количество задач"
FROM #tasks
WHERE ${Дата} IS NOT NULL
AND is_closed = false
GROUP BY "Период"
ORDER BY MIN(DATE(${Дата})) DESC
LIMIT 100;
Откройте настройки полученного виджета и задайте параметры его отображения. Выберите Диаграмма, затем — Круговая диаграмма.
Общие динамические отчёты с использованием фильтров
Отчёты строятся по текущим значениям полей формы Pyrus, но при этом изменяются в зависимости от выбранного временного интервала.
Количество задач, созданных за выбранный период
Цель: видеть ежедневную динамику создания новых задач в выбранный временной интервал.
Результат: временной ряд, который показывает количество задач, созданных каждый день в течение указанного периода времени.

Введите следующий SQL-запрос:
SELECT DATE(create_date) AS "Дата создания", COUNT(task_id) AS "Количество созданных задач" FROM #tasks WHERE create_date >= @period_start AND create_date <= @period_end GROUP BY DATE(create_date) ORDER BY DATE(create_date) LIMIT 100;
Откройте настройки полученного виджета и задайте параметры его отображения. Выберите Диаграмма, затем — Круговая диаграмма и укажите форматирование для колонки Дата создания.
Количество задач по форме, закрытых за определенный период
Цель: оценить, сколько задач ежедневно может выполнять (закрывать) команда.
Результат: временной ряд, который показывает количество задач, закрытых каждый день за определенный период времени.

Введите следующий SQL-запрос:
SELECT DATE(close_date) AS "Дата закрытия", COUNT(task_id) AS "Количество закрытых задач" FROM #tasks WHERE close_date >= @period_start AND close_date <= @period_end GROUP BY DATE(close_date) ORDER BY DATE(close_date) LIMIT 100;
Откройте настройки полученного виджета и задайте параметры его отображения. Выберите Диаграмма, затем — Круговая диаграмма и укажите форматирование для колонки Дата закрытия.
Количество открытых и закрытых задач, срок по которым попадает в определенный временной период
Вводные данные: в форме есть поле типа Дата (код ${Дата}), сотрудники заполняют его, например, при оформлении командировки.
Подсказка: вместо обращения к полю типа Дата можно обращаться, например к коду поля типа Время, или к системным полям Срок (due_date), Дата создания (create_date) и др.
Цель: проанализировать, сколько открытых и сколько закрытых задач попадают в заданный временной интервал.
Результат: временной ряд, распределяющий открытые и закрытые задачи по датам из поля типа Дата и Время.

Введите следующий SQL-запрос:
SELECT
DATE(${Дата}) AS "Пользовательская дата",
COUNT(task_id) FILTER (WHERE is_closed = false) AS "Открытых задач",
COUNT(task_id) FILTER (WHERE is_closed = true) AS "Закрытых задач"
FROM #tasks
WHERE ${Дата} >= @period_start AND ${Дата} <= @period_end
GROUP BY DATE(${Дата})
ORDER BY DATE(${Дата})
LIMIT 100;
Откройте настройки полученного виджета и задайте параметры его отображения. Выберите Диаграмма, а затем — Временной ряд, в Колонке времени укажите Пользовательская дата.
Количество задач, созданных по форме разными сотрудниками за выбранный период
Вводные данные: В форме есть системное поле типа Автор (creator_id), которое автоматически заполняется именем сотрудника при создании заявки .
Цель: отслеживать вклад каждого пользователя (автора) в общее количество созданных задач за выбранный период.
Результат: столбчатая диаграмма, которая показывает число созданных задач каждым пользователем за выбранный период.

Введите следующий SQL-запрос:
SELECT
creator_id AS "#person_full_name('Автор')",
COUNT(task_id) AS "Количество задач"
FROM #tasks
WHERE create_date >= @period_start AND create_date <= @period_end
GROUP BY creator_id
ORDER BY COUNT(task_id) DESC
Настройте параметры отображения. Выберите Диаграмма, а затем — Столбчатая диаграмма.
Распределение задач, созданных за определенный период, по выбранному критерию
Вводные данные: в форме существует поле, значение которого пользователь выбирает при заполнении, типа Выбор, Справочник.
Подсказка: вместо обращения к коду полю ${Число} можно использовать иные данные числового типа,например ${Выбор}, ${Контакт}, responsible_id, step и др. Отображаться при этом в виджете будут только числовые значения.
Цель: проанализировать, как распределяются созданные задачи по критерию в рамках выбранного интервала времени.
Результат: круговая диаграмма, которая показывает распределение созданных задач по выбранным пользователями критериям.

Введите следующий SQL-запрос:
SELECT
${Число} AS "Пользовательское число",
COUNT(task_id) AS "Количество задач"
FROM #tasks
WHERE create_date >= @period_start AND create_date <= @period_end
GROUP BY ${Число}
ORDER BY ${Число}
LIMIT 100;
Откройте настройки полученного виджета и задайте параметры его отображения. Выберите Диаграмма, затем — Круговая диаграмма и укажите форматирование для типа данных Число в разделе Колонки.
Общие суммы сделок по каждому ответственному сотруднику
Вводные данные: в форме существует поле типа Деньги с кодом ${Сумма сделки}. Также имеется системное поле Ответственный, которое автоматически заполняется при создании заявки.
Подсказка: вместо обращения к коду ${Сумма сделки} можно использовать иные данные числового типа, например код поля ${Деньги}. При этом на графике будут отображаться только числовые значения. Также вместо вместо поля responsible_id можно использовать иные поля, которые возвращают id пользователя, например creator_id или код поля типа Контакт ${Контакт}.
Цель: проанализировать вклад каждого сотрудника в заключение сделок за выбранный период времени.
Результат: круговая диаграмма, показывающая долю общей суммы сделок, заключенных каждым сотрудником.

Введите следующий SQL запрос:
SELECT
responsible_id AS "#person_full_name(‘Менеджер’)",
SUM(${Сумма сделки}) AS "Общая сумма закрытых сделок"
FROM #tasks
WHERE is_closed = true
AND close_date >= @period_start
AND close_date <= @period_end
GROUP BY responsible_id
ORDER BY "Общая сумма закрытых сделок"
LIMIT 100;
Настройте в форме параметры отображения. Выберите Диаграмма, затем — Круговая диаграмма, задайте форматирование числе в разделе Колонки.