Функция getDurationAttr подсчитывает время между указанными событиями. Началом и окончанием может быть любое поле с типом число или дата из таблицы event.
getDurationAttr('событие1',порядковый_номер_события1,'событие2',порядковый_номер_события2,'дата_события1','дата_события2')
событие1 — событие, откуда начинается расчет времени прохождения
'' — если оставить кавычки пустыми, а в поле порядковый_номер_события1 написать 0, то время будет считаться от начала экземпляра процесса.порядковый_номер_события1 — номер появления первого события. Например:
событие2 — событие, когда завершается расчет времени прохождения.
'' — если оставить кавычки пустыми, а в порядковый_номер_события2 написать 0, то время будет считаться до конца экземпляра процесса.порядковый_номер_события2 — номер появления второго события. Например:
дата_события1 — колонка, откуда будет взята дата для первого указанного события.
дата_события2 — колонка, откуда будет взята дата для последнего указанного события.
Запрос:
SELECT
extId AS "ID Процесса",
getDurationAttr('B',1,'С',-1,'started','customDate') as "Длительность"
from process
| extId | name | started | customDate |
|---|---|---|---|
| 1 | A | 1627775768 | 1627775769 |
| 1 | B | 1627776077 | 1627776078 |
| 1 | C | 1627776079 | 1627776080 |
| 1 | C | 1627781627 | 1627814434 |
| 1 | D | 1627814604 | 1627814605 |
| ID Процесса | Длительность |
|---|---|
| 1 | 38357 |