基于另一列的排名日期-Spotfire
在使用自定义表达式时,是否有人知道如何绕过使用OVER函数对日期进行排序或排序的Spotfire限制 提供一点背景信息,我试图根据以下数据确定或标记租赁为1、2、3等。例如,由于我们在左栏中看到两次63,我想返回1和2以确定两个不同的租赁,从2016年1月1日和2016年8月1日开始。然后是1和2代表72,1代表140,依此类推。不幸的是,OVER函数只能与聚合方法一起使用,我不知道还有其他方法可以产生我正在寻找的结果基于另一列的排名日期-Spotfire,spotfire,Spotfire,在使用自定义表达式时,是否有人知道如何绕过使用OVER函数对日期进行排序或排序的Spotfire限制 提供一点背景信息,我试图根据以下数据确定或标记租赁为1、2、3等。例如,由于我们在左栏中看到两次63,我想返回1和2以确定两个不同的租赁,从2016年1月1日和2016年8月1日开始。然后是1和2代表72,1代表140,依此类推。不幸的是,OVER函数只能与聚合方法一起使用,我不知道还有其他方法可以产生我正在寻找的结果 Tenant Lease_From Lease_To Tenant
Tenant Lease_From Lease_To Tenant_status
63 1/1/2016 1/31/2017 Current
63 8/1/2017 7/31/2018 Current
72 10/1/2016 7/31/2017 Current
72 8/1/2017 7/31/2018 Current
140 2/1/2017 7/31/2018 Current
149 8/1/2016 7/31/2017 Current
149 8/1/2017 7/31/2018 Current
156 1/15/2017 3/31/2018 Current
156 4/1/2018 3/31/2019 Current
使用以下命令:
Rank([Lease_From], [Tenant])
结果如下:
Tenant Lease_From Lease_To Tenant_status Rank([Lease_From], [Tenant])
63 1/1/2016 1/31/2017 Current 1
63 8/1/2017 7/31/2018 Current 2
72 10/1/2016 7/31/2017 Current 1
72 8/1/2017 7/31/2018 Current 2
140 2/1/2017 7/31/2018 Current 1
149 8/1/2016 7/31/2017 Current 1
149 8/1/2017 7/31/2018 Current 2
156 1/15/2017 3/31/2018 Current 1
156 4/1/2018 3/31/2019 Current 2
请考虑“布莱克福特的回答是正确的!”p> 也就是说,作为供参考,First被认为是一种聚合方法,OVER语句可以包含在If中!因此,您可以使用以下表达式完成相同的操作:
If([Lease_From] = First([Lease_From]) OVER ([Tenant]), 1, 2)
以这种方式组合If和OVER时,您可以获得一些非常酷和强大的可视化效果,但您确实失去了有效标记数据的能力。这是因为表达式是从If而不是OVER的上下文进行计算的;换句话说,将考虑所有行,而不是仅考虑选定的行
你可以用一些黑魔法数据函数来解决这个问题,但这有点做作
同样,在这种情况下,排名绝对是正确的解决方案。谢谢你们,这非常有帮助!它还很好地设置了我们,这样我们就不必随着租约的增加而编辑表达式。非常感谢。很高兴你把它整理好了!一定要接受@blackeoft的回答:我们都是为了帮助社区,有用的感觉很棒,但最终,甜蜜的声誉点是一个不错的奖励;