Функция 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
group by "ID Процесса"
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 |