Spotfire中如何跨表引用数据在目标表创建计算列
Spotfire 跨表创建月度合同汇总计算列方案
你不需要提前合并两表,也不需要先在数据源表做聚合再插列,直接按以下步骤操作即可,完全适配你当前的数据量级:
- 第一步先配置两表关联:在Spotfire的数据画布中,给
monthly table和total table创建关联关系,关联键为两表共有的合同唯一标识:monthly table.[Number]匹配total table.[Contract_Number],关联类型选择左连接,左表指定为monthly table。这种关联方式不会造成目标表行数膨胀,最终monthly table仍然保持13000行、单合同单行的结构,性能上完全可以承载55万行的交易表匹配计算,不会有卡顿问题。 - 关联配置完成后,直接在
monthly table中新建计算列即可跨表引用total table的字段,聚合逻辑会自动按当前行的合同号,限定在匹配到的交易记录范围内计算,天然实现单合同单次展示汇总值的效果。
跨表计算列的基础框架如下,你可以自行补充调整交易类型、日期范围的判断逻辑:
Sum( If( -- 此处替换为你需要的判断规则,可直接引用两表任意字段 [total table].[Type] = "指定交易类型字符串" -- 若需计算累计到当月的交易额,可补充日期判断,例:AND [total table].[Date] <= Date(Year([monthly table].[Date]), [monthly table].[Month], 1) ,[total table].[Amount] ,NULL ) )
注意:你之前在
total table中写计算逻辑出现所有交易行重复显示汇总值的问题,是因为直接在交易表写无范围限定的Sum()时,聚合默认覆盖全表数据,必须搭配Over()子句指定聚合维度才能得到正确结果,而直接在monthly table中做聚合不需要额外写Over子句,关联关系会自动限定聚合范围为当前合同对应的交易记录,写法更简单也不会出现重复值问题。
内容的提问来源于stack exchange,提问作者SpotfireQuestion
相关产品推荐
相关产品推荐

