使用Spotfire自定义表达式

时间:2017-11-07 18:37:00

标签: spotfire

我的输入数据表如下所示

ID      AdmitDate
ABC001  1/1/2017
XYZ007  1/2/2017
XYZ002  1/3/2017
ABC001  1/4/2017
ABC001  1/7/2017
XYZ002  1/7/2017

我正在尝试检索每次新访问的先前录取日期。输出应该是这样的。

ID      AdmitDate   PreviousAdmitDate
ABC001  1/1/2017    
XYZ007  1/2/2017    
XYZ002  1/3/2017    
ABC001  1/4/2017    1/1/2017
ABC001  1/7/2017    1/4/2017
XYZ002  1/7/2017    1/3/2017

在SQL中,我会做类似的事情......

LAG(AdmitDate, 1, Null) OVER (PARTITION BY ID ORDER BY AdmitDate) AS PreviousAdmitDate

我在this帖子中尝试了以下解决方案,但没有成功。

First([AdmitDate]) OVER (Intersect([ID], Previous([AdmitDate])))

Spotfire自定义表达式的做法是什么?

1 个答案:

答案 0 :(得分:2)

@WeShall - 以下是步骤:

第1步:添加计算列,其ID值减少。

Count([ID]) over (intersect([ID],AllNext([AdmitDate])))

第2步:现在,使用上一步中的计算列添加一个计算列,该列显示相同ID的上一个日期。

Min([AdmitDate]) over (Intersect([ID],Next([decreasing_count])))

注意:列' decrease_count'可以在后台工作。没有必要在表格中显示它。

最终输出表:

enter image description here

希望这有帮助。