【问题标题】:Spotfire - sum() over lookbackSpotfire - sum() 回顾
【发布时间】:2017-03-06 21:01:45
【问题描述】:

我正在尝试按帐户对从 T_DATE 起过去 14 天的 VAL 列中的值求和。

我的表情是

if([RND_FLG]=1 ,Sum([VAL]) over (Intersect([T_ACC],LastPeriods(14,[T_DATE]))),null)

9/10 结果是准确的,但情况并非总是如此。

感谢任何帮助。

下面的示例数据:

ALLDATE     T_ACC       VAL     14DAYVAL  
12/13/2016  1501313137  500000  500000  
12/15/2016  1501313137  800000  1300000  
12/19/2016  1501313137  500000  1800000  
12/20/2016  1501313137  500000  2300000  
12/21/2016  1501313137  500000  2300000  
12/22/2016  1501313137  500000  3300000  
12/30/2016  1501313137  200000  3500000

【问题讨论】:

    标签: sum calculated-columns spotfire


    【解决方案1】:

    当您的日期有空档时,您可能会得到不正确的结果。 LastPeriods() 与 n - days 不同,因此它聚合了 n 行与天数。您可以将数据标准化为每个日期有 1 行来解决这个问题。

    【讨论】:

    • 我尝试使用 DateAdd 函数 (DateAdd("day",-14,[T_DATE])) 来确定每一天的截止日期,但仍然不正确。下面的有意义吗? if(([RND_FLG]=1), Sum([VAL]) over (Intersect([T_ACC], DateAdd('day', -14, [T_DATE]))), NULL))这个?
    • 为了进一步澄清,我不想将过去 14 天内发生的每一行的值相加,只计算被认为是“圆形”的值(有 5 个以上的零),即为什么上面等式中有rnd_flag的if语句。谢谢!
    • @LaurenFetky 我认为您将不得不规范化您的数据或在 Python 或 TERR 中处理它
    【解决方案2】:

    尝试添加一个排名列,如 Rank([T_DATE],[T_ACC]) 然后你可以使用 over intersect 和 lastperiods 求和

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 2018-09-29
      • 2018-10-26
      • 2017-01-31
      • 2012-11-21
      • 2016-11-26
      • 2013-08-03
      相关资源
      最近更新 更多