首页 > 解决方案 > spotfire 使用 over 函数计算列

问题描述

我想创建一个计算列“indicateur”,当我有一个 True 时跟踪布尔值,我将指标增加 1,但是我希望假行具有最后一个真指标的值。

当我传递给一个新 ID 时,增量从零开始。

我已经使用 over 函数尝试了一些点火表达式,但没有得到正确的结果

case  
when [boolean] then sum(If([boolean],1,0)) over (Intersect([ID],AllPrevious([ID])))
else 0
end

在此处输入图像描述

标签: spotfiredata-transform

解决方案


你在这里有几个问题。您的案例语句正在设置数据......它只会计算布尔值为真的总和。

主要问题是 over 声明。这样的事情应该给出正确的答案

sum(If([boolean],1,0)) over (Intersect([ID],AllPrevious([Timestamp])))

推荐阅读