用于聚合同一案例内所有事件值的函数。
了解案例聚合
在流程挖掘中,案例代表流程的一个实例(例如一个订单、一个工单或一次客户旅程)。每个案例包含多个事件(单独的步骤或活动)。
案例聚合函数会计算案例中所有事件的值,并使结果在每个事件中可用。您可以借此:
- 计算案例总值(例如订单总金额)
- 发现案例中的模式(例如返工事件数量)
- 将单个事件与案例级统计数据进行比较
常见模式
-
计算案例总值:
caseSum(ItemAmount) // Total order value
caseCount() // Number of events in case
caseCountDistinct(Resource) // Unique resources involved
-
查找极值:
caseMin(Timestamp) // First event time
caseMax(Timestamp) // Last event time
caseMax(Timestamp) - caseMin(Timestamp) // Total case duration
-
条件聚合:
caseCountIf(Status == "Error") // Error count
caseSumIf(Amount, Activity == "Payment") // Total payments
caseAvgIf(Duration, Activity == "Review") // Avg review time
-
比较事件与案例:
Duration / caseAvg(Duration) // Is this event faster/slower than average?
caseSum
(attribute) 汇总当前案例中所有事件的数字属性。
| 参数 | |
| 返回值 | 数字 |
| 示例 | caseSum(ItemAmount) → 案例中所有ItemAmount值的总和 |
caseAvg
(attribute) 计算当前案例中所有事件的数字属性平均值。
| 参数 | | attribute | number | 要求平均值的属性 | |
| 返回值 | 数字 |
| 示例 | caseAvg(ProcessingTime) → 每个事件的平均处理时间 |
caseMin
(attribute) 返回当前案例中所有事件某属性的最小值。
| 参数 | | attribute | number | 要获取最小值的属性 | |
| 返回值 | 数字 |
| 示例 | caseMin(ItemPrice) → 案例中的最低价格 |
caseMax
(attribute) 返回当前案例中所有事件某属性的最大值。
| 参数 | | attribute | number | 要获取最大值的属性 | |
| 返回值 | 数字 |
| 示例 | caseMax(ItemPrice) → 案例中的最高价格 |
caseCount
() 返回当前案例中的事件数量。
caseMedian
(attribute) 返回当前案例中所有事件某属性的中位数。
| 参数 | | attribute | number | 要获取中位值的属性 | |
| 返回值 | 数字 |
| 示例 | caseMedian(Duration) → 案例中的Duration中位值 |
caseCountDistinct
(attribute) 统计当前案例中属性的不同值数量。
| 参数 | | attribute | any | 要统计不同值数量的属性 | |
| 返回值 | 数字 |
| 示例 | caseCountDistinct(Resource) → 案例中的唯一资源数量 |
caseStdDev
(expr) 计算案例中各事件的标准差。
| 参数 | |
| 返回值 | 数字 |
| 示例 | caseStdDev(Amount) → 案例内的标准差 |
caseSumIf
(attribute, condition) 仅对符合条件的事件求和。
| 参数 | | attribute | number | 要求和的属性 | | condition | boolean | 用于筛选的条件 | |
| 返回值 | 数字 |
| 示例 | caseSumIf(Amount, Status == "Approved") → Status为Approved时的Amount总和 |
caseAvgIf
(attribute, condition) 仅对符合条件的事件求平均值。
| 参数 | | attribute | number | 要求平均值的属性 | | condition | boolean | 用于筛选的条件 | |
| 返回值 | 数字 |
| 示例 | caseAvgIf(Duration, Activity == "Review") → Review活动的平均Duration |
caseCountIf
(condition) 统计当前案例中符合条件的事件数量。
| 参数 | |
| 返回值 | 数字 |
| 示例 | caseCountIf(Status == "Error") → 案例中的错误事件数量 |
caseMinIf
(attribute, condition) 返回符合条件的事件中的最小值。
| 参数 | | attribute | number | 要获取最小值的属性 | | condition | boolean | 用于筛选的条件 | |
| 返回值 | 数字 |
| 示例 | caseMinIf(Timestamp, Activity == "Start") → 第一个Start活动的Timestamp |
caseMaxIf
(attribute, condition) 返回符合条件的事件中的最大值。
| 参数 | | attribute | number | 要获取最大值的属性 | | condition | boolean | 用于筛选的条件 | |
| 返回值 | 数字 |
| 示例 | caseMaxIf(Timestamp, Activity == "End") → 最后一个End活动的Timestamp |
运行聚合
运行聚合会计算截至当前事件(包括当前事件)的累计值。按时间顺序查看案例中的事件时,运行值会持续更新。
适用于:
- 跟踪累计总值(运行总和)
- 确定事件位置(运行计数)
- 计算滚动平均值
运行聚合模式
-
累计总值:跟踪某个值在案例中的累积过程:
caseRunningSum(ItemAmount) // Cumulative order total at each event
| 事件 | 金额 | caseRunningSum(Amount) |
| 1 | 100 | 100 |
| 2 | 50 | 150 |
| 3 | 75 | 225 |
-
事件位置:确定事件在案例顺序中的位置:
caseRunningCount() // 1, 2, 3, 4...
-
滚动平均值:计算截至当前点的平均值:
caseRunningAvg(Duration) // Average duration so far
-
基于位置的逻辑:
if(caseRunningCount() == 1, "First",
if(caseRunningCount() == caseCount(), "Last", "Middle")
)
caseRunningSum
(attribute) 计算截至当前事件的累计总和,包括当前事件。
| 参数 | |
| 返回值 | 数字 |
| 示例 | caseRunningSum(ItemAmount) → 每个事件的累计总额 |
caseRunningCount
() 返回案例中的事件序号,从1开始。
| 返回值 | 数字 |
| 示例 | caseRunningCount() → 事件位置:1、2、3…… |
caseRunningAvg
(attribute) 计算截至当前事件的累计平均值,包括当前事件。
| 参数 | | attribute | number | 要求平均值的属性 | |
| 返回值 | 数字 |
| 示例 | caseRunningAvg(Duration) → 截至当前的平均Duration |
caseRunningMin
(expr) 计算截至当前事件的累计最小值。
| 参数 | |
| 返回值 | 数字 |
| 示例 | caseRunningMin(Amount) → 累计最小Amount |
caseRunningMax
(expr) 计算截至当前事件的累计最大值。
| 参数 | |
| 返回值 | 数字 |
| 示例 | caseRunningMax(Amount) → 累计最大Amount |
统计函数
用于分析案例内数值分布的统计函数。
-
百分位数:确定某个值相对于案例中其他值的位置。以0到1之间的分数传入百分位数,因此0.9表示第90百分位数:
casePercentile(Duration, 0.5) // Median duration in this case
casePercentile(Duration, 0.9) // 90th percentile
-
方差:衡量数值的离散程度:
caseVariance(Amount) // Variation within this case
casePercentile
(attribute, percentile) 计算属性在当前案例内的百分位值。
| 参数 | | attribute | number | 要分析的属性 | | percentile | number | 百分位数以0到1之间的分数表示(0.9=第90百分位数) | |
| 返回值 | 数字 |
| 示例 | casePercentile(Duration, 0.9) → 案例中Duration的第90百分位值 |
caseVariance
(attribute) 计算属性在当前案例内的方差。
| 参数 | |
| 返回值 | 数字 |
| 示例 | caseVariance(ProcessingTime) → 案例中ProcessingTime的方差 |
相关主题