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

Tableau:不使用表计算实现工单状态起始时间偏移计算

实现方案:用LOD函数计算上一状态起始时间戳

完全可以不用表计算,通过LOD函数结合排序逻辑实现Status previous from字段,以下是具体步骤:

步骤1:处理NULL状态结束时间

先处理每个工单最后一行(Done状态)Status to为NULL的情况,保证排序逻辑正常:

IFNULL([Status to], DATEADD('second', 1, {FIXED [Ticket]: MAX([Status to])}))

将该字段命名为状态结束时间(含补全),它会把NULL替换为对应工单所有状态结束时间中最晚的时间加1秒,确保最后一行排在所有状态之后。

步骤2:为每个工单的状态行分配序号

基于补全后的状态结束时间,给每个工单的状态行按时间顺序分配唯一序号:

{FIXED [Ticket]: RANK([状态结束时间(含补全)])}

命名为状态序号,每个工单的第一行(New状态)序号为1,后续状态依次递增。

步骤3:计算上一状态起始时间戳

通过LOD关联当前行的上一个序号对应的状态起始时间:

{FIXED [Ticket], [状态序号]-1: MAX([Status from])}

命名为Status previous from,逻辑如下:

  • 序号为1的行(第一行),[状态序号]-1=0,无对应行,返回NULL
  • 序号为n的行,找到同工单中序号为n-1的行的Status from,即上一状态的起始时间

特殊情况处理

如果同一工单内存在重复的状态结束时间,可修改状态序号的计算逻辑,结合Status from确保序号唯一:

{FIXED [Ticket]: RANK(CONCAT(STR([状态结束时间(含补全)]), STR([Status from])))}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:21:34