如何在Spotfire中按ID获取上一行的状态变更日期?
在Spotfire中按ID获取上一行状态变更日期的方法
前提准备
先确保数据按ID和状态变更日期升序排序,保证取到的是对应ID的上一条有效记录:
- 右键数据表格 → 选择「排序」
- 添加排序规则:先按
ID升序,再按状态变更日期升序
创建计算列
点击「插入」→「计算列」,在表达式编辑器中输入以下任一公式(推荐第二种,更简洁可靠):
写法一(带逻辑判断)
If(RowId() != 1 and [ID] == Previous([ID]), Previous([状态变更日期]), Null)
逻辑说明:当前行不是组内第一行且ID与上一行一致时,返回上一行的状态变更日期,否则返回空值。
写法二(Over分区写法,推荐)
Previous([状态变更日期]) Over (Partition By [ID] Order By [状态变更日期])
逻辑说明:按ID分组,每组内按状态变更日期排序,直接取当前行的上一行日期,组内第一行自动返回空值。
注意事项
- 如果存在同一ID、同一状态变更日期的多条记录,建议额外添加一个唯一排序列(如记录创建时间),避免顺序错乱;
- 将计算列命名为「上次状态变更日期」即可完成需求。
内容的提问来源于stack exchange,提问作者ParthaSarathi
相关产品推荐
相关产品推荐

