Функция event_sum
вычисляет сумму значений по экземпляру процесса в указанной колонке. Работает по числовым типам колонок.
event_sum(колонка|выражение [, фильтр])
- колонка или выражение — имя столбца из таблицы журнала событий, по которому будет работать функция. Также можно написать выражение с более сложной логикой.
- фильтр — необязательное условие фильтрации для указания того, какие значения следует учитывать при подсчете.
Запрос:
select
id as "Экз. процесса",
event_sum(event_log.cost) as "Сумма стоимости"
from case_table
Данные на входе
Данные на выходе
case_table
event_log
case_id |
activity |
cost |
1 |
А |
100 |
1 |
В |
400 |
1 |
В |
50 |
1 |
С |
200 |
1 |
D |
1 |
2 |
А |
200 |
2 |
B |
100 |
2 |
C |
50 |
2 |
D |
400 |
2 |
E |
200 |
Экз. процесса |
Сумма стоимости |
1 |
751 |
2 |
950 |
Запрос:
select
case_id,
activity,
event_cost,
event_sum(event_log.event_cost) as "Сумма стоимости"
from event_log
Данные на входе:
Данные на выходе:
event_log
case_id |
activity |
cost |
1 |
А |
100 |
1 |
В |
400 |
1 |
В |
50 |
1 |
С |
200 |
1 |
D |
200 |
case_id |
activity |
cost |
Сумма стоимости |
1 |
А |
100 |
950 |
1 |
В |
400 |
950 |
1 |
В |
50 |
950 |
1 |
С |
200 |
950 |
1 |
D |
200 |
950 |
Запрос:
select
id as "Экз. процесса"
from case_table
where event_sum(event_log.cost) > 900
Данные на входе
Данные на выходе
case_table
event_log
case_id |
activity |
cost |
1 |
А |
100 |
1 |
В |
400 |
1 |
В |
50 |
1 |
С |
200 |
1 |
D |
1 |
2 |
А |
200 |
2 |
B |
100 |
2 |
C |
50 |
2 |
D |
400 |
2 |
E |
200 |
Запрос:
select
id as "Экз. процесса",
event_sum(event_log.cost, event_log.user='Pete') as "Сумма стоимости"
from case_table
Данные на входе
Данные на выходе
case_table
event_log
case_id |
cost |
resource |
1 |
400 |
Sean |
1 |
50 |
Mike |
1 |
200 |
Sara |
1 |
100 |
Pete |
2 |
200 |
Pete |
2 |
400 |
Sue |
2 |
50 |
Pete |
2 |
100 |
Mike |
2 |
200 |
Sara |
Экз. процесса |
Сумма стоимости |
1 |
100 |
2 |
250 |
Запрос:
select
count(*) as "Кол-во",
case
when
event_sum(
case when timestamp_to_str(event_log.end_timestamp, '%H:%M:%S')='00:00:00'
then 1 else 0
end)>0
then 'Конец в 00:00:00'
else 'Остальное' end as "Время"
from case_table
group by "Время"
Данные на входе
Данные на выходе
case_table
event_log
case_id |
end_timestamp |
1 |
2019-02-05 18:36:03 |
1 |
2019-02-09 16:02:11 |
1 |
2019-02-13 14:07:07 |
1 |
2019-02-14 00:00:00 |
2 |
2019-02-22 15:43:17 |
2 |
2019-03-18 12:29:49 |
2 |
2019-06-14 12:57:28 |
2 |
2019-02-04 12:42:15 |
2 |
2019-06-14 12:19:26 |
Кол-во |
Время |
1 |
Конец в 00:00:00 |
1 |
Остальное |