首页 > 解决方案 > Spotfire 根据每个组的日期计算单个列中值的差异

问题描述

我需要根据事件计算单列中值的 Spotfire 差异。

数据看起来像

ID 价值 日期
1 7 2021 年 7 月 1 日
1 8 2021 年 9 月 1 日
1 10 2021 年 10 月 1 日
1 15 2021 年 11 月 1 日
1 6 2021 年 12 月 1 日
1 3 15/01/2021
2 10 2021 年 7 月 1 日
2 11 2021 年 8 月 1 日
2 12 2021 年 9 月 1 日

预期的输出是

ID 价值 日期 旗帜
1 7 2021 年 7 月 1 日 真的
1 8 2021 年 9 月 1 日
1 10 2021 年 10 月 1 日
1 15 2021 年 11 月 1 日
1 6 2021 年 12 月 1 日
1 3 15/01/2021
2 10 2021 年 7 月 1 日 错误的
2 11 2021 年 8 月 1 日
2 12 2021 年 9 月 1 日

逻辑是

我们需要通过比较每个 id 的第一次接收和最新接收的值来找到标志。

对于 id 1,第一次收到的值为 7

对于 id 1,最新收到的值为 3

是 7>3 真。

为了便于理解,我对 id 列进行了排序。

提前致谢。

标签: calculated-columnsrankingspotfire

解决方案


嗨,我认为您可以分两步执行此操作:

第一步 :

Concatenate(String([Value])) OVER ([ID])

会说您命名此列:测试

这会给你(7,8,10,15,6,3)

第二步 :

Integer(left([test],1)) > Integer(right([test],1))
ID 价值 日期 测试 旗帜
1 7 2021 年 7 月 1 日 7、8、10、15、6、3 真的
1 8 2021 年 9 月 1 日 7、8、10、15、6、3 真的
1 10 2021 年 10 月 1 日 7、8、10、15、6、3 真的
1 15 2021 年 11 月 1 日 7、8、10、15、6、3 真的
1 6 2021 年 12 月 1 日 7、8、10、15、6、3 真的
1 3 15/01/2021 7、8、10、15、6、3 真的
2 10 2021 年 7 月 1 日 10、11、12 错误的
2 11 2021 年 8 月 1 日 10、11、12 错误的
2 12 2021 年 9 月 1 日 10、11、12 错误的

推荐阅读