如何用Spotfire Over函数计算同类别下的上一日期?
在Spotfire中计算同类别下的上一个日期
根据你的需求,要为每行数据生成同类别下的上一个日期(组内第一行无前置日期则为空),可以通过以下两种Spotfire计算列方法实现:
方法1:取同类别排序后的紧邻上一行日期
适用于数据已按category和date排序的场景,直接获取组内排序后的前一行日期:
- 点击顶部菜单「数据」→「添加计算列」
- 列名设为
expected_date,输入表达式:
Previous([date]) OVER (Partition By [category] Order By [date])
Partition By [category]:按类别分组计算Order By [date]:组内按日期排序Previous([date]):返回排序后当前行的上一行日期,组内第一行自动为空
方法2:取同类别中当前日期之前的最大日期
如果数据未严格排序,或需要找到当前日期之前的最近日期(而非仅紧邻行),用以下表达式:
Max([date]) OVER (Partition By [category] WHERE [date] < CurrentRow()[date])
该表达式会在同类别中筛选出所有小于当前行日期的记录,取其中的最大日期作为结果。若需取最早的前置日期,将Max替换为Min即可。
添加计算列后,即可得到你示例中预期的日期结果。
内容的提问来源于stack exchange,提问作者Maxime Oriol
相关产品推荐
相关产品推荐

