Spotfire over function - 具有多个类别的上一个日期

时间:2017-10-02 11:13:17

标签: spotfire tibco

我想计算按类型和ID分类的两行之间的值差异,并按日期列排序。请参见示例数据表。请注意,“计算”列显示当前结果,而“预期”列显示我想要实现的结果。

ID  Type    Date        ValueA  ValueB  ValueC  Calculated  Expected
1   A       8/15/2017   38.11                   
1   A       8/15/2017   78.10                               39.99
1   A       8/22/2017   110.24                              32.14
1   B       8/22/2017           20
1   B       9/16/2017           10
1   A       9/16/2017   101.13                              -9.11
2   C       8/17/2012                   90
2   A       8/18/2012   863.25              
2   B       8/18/2012           15
2   A       8/19/2012   952.35                  89.1        89.1
2   B       8/19/2012           20

我尝试了以下自定义表达式,但它似乎仅针对给定ID的连续日期的情况计算差值。

Case  

when [Type]="A" then [Value] - Max([Value]) over (Intersect([ID],Previous([Date])))

else NULL

该表达式尝试过滤为OVER语句的“A”类型,以便前一个日期仅为分类为“A”类型的值的上一个日期。但是,如果不是连续日期(即前一天),它似乎将前一个日期视为NULL。有关此表达式的结果,请参阅上表中的“计算”。

我还尝试将Type添加到Intersect语句中,例如相交([ID],[类型],上一个([日期]),但我得到了类似的结果。

1 个答案:

答案 0 :(得分:0)

确实

user_input_string.format(*user_input_args)

为您提供您想要的计算列

编辑: 我能够使用这个公式(previousperiod而不是之前的版本)几乎匹配您的预期列,但前两行是相同的日期,因此它不是完全匹配。 formula