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

Spotfire中基于相同ID从其他行获取对应时间的实现方案求助

在Spotfire中根据PreviousID匹配ID生成PreviousTime列

需求说明

需要在Spotfire中实现:根据PreviousID匹配表内的ID,获取对应行的Time值并生成新列PreviousTime。需求等价于以下SQL查询:

SELECT a.ID, a.Time, a.POKey, a.PreviousID, b.Time as PreviousTime 
From Table a, Table b 
WHERE a.PreviousID = b.ID

原始数据表

IDTimePOKeyPreviousID
60:59A6
71:00A6
91:02A6
131:06A9
141:07A9
151:08A9

期望结果表

IDTimePOKeyPreviousIDPreviousTime
60:59A60:59
71:00A60:59
91:02A60:59
131:06A91:02
141:07A91:02
151:08A91:02

实现方法

方法1:使用计算列(LOOKUP函数)

无需修改数据源,直接在现有表中生成计算列:

  • 点击顶部菜单栏 数据 -> 添加计算列
  • 设置列名为PreviousTime,输入表达式:
    LOOKUP([Time], [ID], [PreviousID])
    
  • 点击确定即可生成目标列。

说明:LOOKUP函数会在表内匹配ID等于当前行PreviousID的记录,返回对应Time值;由于你的场景中ID唯一,不会出现多值匹配问题。

方法2:数据源自连接

在数据连接层完成关联,类似SQL自连接逻辑:

  • 打开数据连接编辑器,两次添加目标数据表,分别命名为a和b
  • 设置连接条件:a.PreviousID = b.ID
  • 选择需要的列:a.ID、a.Time、a.POKey、a.PreviousID,并将b.Time重命名为PreviousTime
  • 完成连接后加载数据,即可得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:16:36