Справка

Примеры пользовательских отчётов

Познакомьтесь с полезными примерами 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;

Настройте в форме параметры отображения. Выберите Диаграмма, затем — Круговая диаграмма, задайте форматирование числе в разделе Колонки.

Была ли эта статья полезной?