Функция procSum
вычисляет сумму значений по экземпляру процесса в указанной колонке. Работает по числовым типам колонок.
procSum(колонка|выражение [, фильтр])
- колонка или выражение — имя столбца из таблицы event, по которому будет работать функция. Также можно написать выражение с более сложной логикой агрегации.
- фильтр — необязательное условие фильтрации для указания того, какие значения следует учитывать при агрегировании.
Запрос:
select
extId as "Экз. процесса",
procSum(event.cost) as "Сумма стоимости"
from process
Данные на входе
Данные на выходе
Process
Event
extId |
name |
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
process.extId,
event.name,
event.cost,
procSum(event.cost) as "Сумма стоимости"
from process,event
Данные на входе:
Данные на выходе:
extId |
name |
cost |
1 |
А |
200 |
1 |
В |
100 |
1 |
В |
50 |
1 |
С |
400 |
1 |
D |
200 |
extId |
name |
cost |
Сумма стоимости |
1 |
А |
200 |
950 |
1 |
В |
100 |
950 |
1 |
В |
50 |
950 |
1 |
С |
400 |
950 |
1 |
D |
200 |
950 |
Запрос:
select
extId as "Экз. процесса"
from process
where procSum(event.cost)>900
Данные на входе
Данные на выходе
Process
Event
extId |
name |
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
extId,
procSum(event.cost, event.resource='Pete') as "Средняя стоимость"
from process
Данные на входе
Данные на выходе
Process
Event
extId |
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
procSum(
case when timeToStr(event.ended, '%H:%M:%S')='00:00:00'
then 1 else 0
end)>0
then 'Конец в 00:00:00'
else 'Остальное' end as "Время"
from process
group by "Время"
Данные на входе
Данные на выходе
Process
Event
extId |
ended |
1 |
1549380963 |
1 |
1559134931 |
1 |
1550056027 |
1 |
1550102400 |
2 |
1550839397 |
2 |
1552901389 |
2 |
1560506248 |
2 |
1549273335 |
2 |
1560503966 |
Кол-во |
Время |
1 |
Конец в 00:00:00 |
1 |
Остальное |