You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DAX按订单累计工时问题:计算失败至成功执行的耗时

修正后的DAX度量方案

要实现从最后一次失败到对应成功执行的累计耗时总和,原代码未处理失败/成功的状态逻辑,也未计算时间差,以下是修正后的度量:

累计失败到成功耗时 = 
VAR 所有成功记录 = FILTER('Historico Jobs', 'Historico Jobs'[run_status] = 1)
RETURN
SUMX(
    所有成功记录,
    VAR 当前成功时间 = 'Historico Jobs'[time]
    VAR 当前成功ID = 'Historico Jobs'[instance_id]
    -- 找到当前成功记录之前,最后一次失败的执行时间
    VAR 最近失败时间 = 
        MAXX(
            FILTER(
                ALL('Historico Jobs'),
                'Historico Jobs'[instance_id] < 当前成功ID && 'Historico Jobs'[run_status] = 0
            ),
            'Historico Jobs'[time]
        )
    -- 计算单次耗时(仅当存在对应失败记录时才计算)
    VAR 单次耗时 = IF(NOT(ISBLANK(最近失败时间)), 当前成功时间 - 最近失败时间, 0)
    RETURN 单次耗时
)

关键逻辑说明

  • 筛选成功记录:只针对成功执行的记录计算,因为每次成功才对应一段从失败到成功的耗时
  • 匹配最近失败记录:通过MAXX和FILTER找到当前成功记录之前(instance_id更小)的最后一次失败的时间
  • 计算并累加耗时:对每个成功记录,计算与对应失败记录的时间差,最后汇总所有有效耗时

补充说明

  • 如果需要按日汇总,可配合日期维度表使用,或在度量中加入日期筛选逻辑
  • 若存在连续多次失败后才成功的场景,该度量会自动取最后一次失败到成功的时长,符合需求

内容的提问来源于stack exchange,提问作者Luis Orozco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:25:01