Spotfire如何在文本字段中显示延迟状态最多的流程名称
Spotfire 文本字段展示延迟状态最多流程名的实现方法
不需要额外建计算列或者中间汇总表,直接在文本区域插入动态计算值就能实现,步骤和可用表达式如下:
- 右键点击需要放置结果的文本区域(Text Field/Text Area),选择「编辑文本区域」
- 将光标定位到要显示流程名的位置,点击插入动态项,选择「计算值」
- 在表达式弹窗中输入以下计算逻辑,确认后即可自动输出结果:
Max( If( Rank( Count(If([status]='DELAYED', 1, NULL)) OVER ([Process]), "desc", [Process] )=1, [Process], Null ) )
表达式逻辑说明
- 最内层
Count(If([status]='DELAYED', 1, NULL)) OVER ([Process]):按Process字段分组,统计每个流程下DELAYED状态的总记录数 - 中间层
Rank(..., "desc", [Process]):对所有流程的延迟记录数做降序排名,延迟数最高的流程排名值为1 - 最外层
Max():提取排名为1的流程名称;如果存在多个流程并列延迟数第一的场景,会按字符串排序返回最靠前的流程名。如果需要展示全部并列的流程,把Max替换为ConcatenateUnique即可,多个流程名会自动用逗号分隔。
这个计算逻辑会自动响应页面上的筛选器操作,筛选数据后会实时计算当前可见数据范围内延迟状态最多的流程,不需要手动刷新。
用提供的样例数据测试,最终文本字段会正确返回结果B。
内容的提问来源于stack exchange,提问作者AllPower
相关产品推荐
相关产品推荐

