Функция event_count
Вычисляет количество значений по экземпляру процесса в указанной колонке. Можно применять к любому типу данных.
NULL значения игнорируются при подсчете
event_count(колонка|выражение [, фильтр])
- колонка или выражение — имя столбца из таблицы журнала событий, по которому будет работать функция. Также можно написать выражение с более сложной логикой.
- фильтр — необязательное условие фильтрации для указания того, какие значения следует учитывать при подсчете.
Запрос:
select
id as "Экз. процесса",
event_count(event_log.cost) as "Кол-во"
from case_table
Данные на входе
Данные на выходе
case_table
event_log
case_id |
cost |
1 |
100 |
1 |
400 |
1 |
500 |
1 |
200 |
1 |
null |
2 |
200 |
2 |
100 |
2 |
50 |
2 |
400 |
2 |
200 |
Экз. процесса |
Кол-во |
1 |
4 |
2 |
5 |
Запрос:
select
id as "Экз. процесса",
event_count(case when event_log.cost is null then 1 else event_log.cost end)
from case_table
Данные на входе
Данные на выходе
case_table
event_log
case_id |
cost |
1 |
100 |
1 |
400 |
1 |
500 |
1 |
200 |
1 |
null |
2 |
200 |
2 |
100 |
2 |
50 |
2 |
400 |
2 |
200 |
Экз. процесса |
Кол-во |
1 |
5 |
2 |
4 |
Если функция используется без фильтров, то такое значение уже заранее рассчитано системой в поле @event_count для каждой таблицы экземпляров процесса. Две колонки в запросе ниже выведут одинаковое значение.
Запрос:
select
id as "Экз. процесса",
event_count(event_log.activity) "Кол-во через event_count()",
"@event_count"
from case_table
Данные на входе
Данные на выходе
case_table
event_log
case_id |
activity |
1 |
A |
1 |
B |
1 |
C |
1 |
D |
2 |
A |
2 |
B |
2 |
B |
2 |
C |
2 |
D |
Экз. процесса |
Кол-во через event_count() |
@event_count |
1 |
4 |
4 |
2 |
5 |
5 |