用于聚合整个数据集中所有事件的值的函数。
了解全局聚合
案例聚合在单个案例内运行,而全局聚合则跨数据集中的所有事件进行计算。这可以用于:
- 计算总体总量和平均值
- 将单个事件或案例与全局基准进行比较
- 计算占总量的百分比
常见模式
-
总体统计:
allSum(Revenue) // Total revenue
allAvg(ProcessingTime) // Average processing time
allCount() // Total number of events
-
占总量的百分比:
caseSum(Amount) / allSum(Amount) * 100 // This case as % of total
Amount / allSum(Amount) * 100 // This event as % of total
-
与平均值比较:
Duration - allAvg(Duration) // Difference from average
Duration / allAvg(Duration) // Ratio to average
-
筛选后的全局聚合:计算数据子集的聚合值:
allSumIf(Amount, Region == "Europe") // European total
allAvgIf(Duration, Priority == "High") // High-priority average
allCountIf(Status == "Completed") // Completed count
-
识别异常值:
if(Duration > allAvg(Duration) + 2 * allStdDev(Duration),
"Outlier", "Normal")
allSum
(attribute) 汇总数据集中所有事件的数值属性。
| 参数 | |
| 返回值 | 数字 |
| 示例 | allSum(Revenue) → 所有案例的Revenue总额 |
allAvg
(attribute) 计算数据集中所有事件的平均值。
| 参数 | | attribute | number | 要求平均值的属性 | |
| 返回值 | 数字 |
| 示例 | allAvg(ProcessingTime) → 整体平均ProcessingTime |
allMin
(attribute) 返回数据集中所有事件的最小值。
| 参数 | | attribute | number | 要获取最小值的属性 | |
| 返回值 | 数字 |
| 示例 | allMin(StartTime) → 数据中的最早Timestamp |
allMax
(attribute) 返回数据集中所有事件的最大值。
| 参数 | | attribute | number | 要获取最大值的属性 | |
| 返回值 | 数字 |
| 示例 | allMax(Amount) → 数据中的最高Amount |
allMedian
(attribute) 返回数据集中所有事件的中位值。
| 参数 | | attribute | number | 要获取中位值的属性 | |
| 返回值 | 数字 |
| 示例 | allMedian(Duration) → 所有Duration的中位值 |
allStdDev
(attribute) 计算数据集中所有事件的标准差。
| 参数 | |
| 返回值 | 数字 |
| 示例 | allStdDev(ProcessingTime) → ProcessingTime的标准差 |
allCountDistinct
(expr) 统计数据集中所有事件的不同值数量。
| 参数 | |
| 返回值 | 数字 |
| 示例 | allCountDistinct(Resource) → 唯一资源数量 |
allSumIf
(attribute, condition) 汇总所有符合条件的事件值。
| 参数 | | attribute | number | 要求和的属性 | | condition | boolean | 用于筛选的条件 | |
| 返回值 | 数字 |
| 示例 | allSumIf(Amount, Region == "Europe") → 欧洲案例的Amount总额 |
allAvgIf
(attribute, condition) 计算所有符合条件的事件的平均值。
| 参数 | | attribute | number | 要求平均值的属性 | | condition | boolean | 用于筛选的条件 | |
| 返回值 | 数字 |
| 示例 | allAvgIf(Duration, Priority == "High") → 高优先级项目的平均Duration |
allCountIf
(condition) 统计所有符合条件的事件。
| 参数 | |
| 返回值 | 数字 |
| 示例 | allCountIf(Status == "Completed") → 已完成事件数量 |
allMinIf
(attribute, condition) 返回所有符合条件的事件中的最小值。
| 参数 | | attribute | number | 要获取最小值的属性 | | condition | boolean | 用于筛选的条件 | |
| 返回值 | 数字 |
| 示例 | allMinIf(Price, Category == "Premium") → Premium的最低Price |
allMaxIf
(attribute, condition) 返回所有符合条件的事件中的最大值。
| 参数 | | attribute | number | 要获取最大值的属性 | | condition | boolean | 用于筛选的条件 | |
| 返回值 | 数字 |
| 示例 | allMaxIf(Duration, Activity == "Approval") → 最长ApprovalDuration |
统计函数
用于分析所有事件中值分布的统计函数。
-
识别绩效层级:
百分位数以0到1之间的分数传入(0.25=第25百分位数):
if(Duration < allPercentile(Duration, 0.25), "Fast",
if(Duration < allPercentile(Duration, 0.75), "Normal", "Slow")
)
-
查找异常值:超出平均值两个标准差的值:
if(abs(Amount - allAvg(Amount)) > 2 * sqrt(allVariance(Amount)),
"Outlier", "Normal")
-
与基准比较:
Duration > allPercentile(Duration, 0.9) // Is this in the top 10% (slowest)?
allPercentile
(attribute, percentile) 计算属性在所有事件中的百分位值。
| 参数 | | attribute | number | 要分析的属性 | | percentile | number | 百分位数以0到1之间的分数表示(0.95=第95百分位数) | |
| 返回值 | 数字 |
| 示例 | allPercentile(Duration, 0.95) → 整体Duration的第95百分位值 |
allVariance
(attribute) 计算属性在所有事件中的方差。
| 参数 | |
| 返回值 | 数字 |
| 示例 | allVariance(Amount) → 所有事件Amount的方差 |
相关主题