spotfire如何获取列中的最后一个值?

时间:2017-03-24 15:03:28

标签: spotfire

我有一个数据表如下。我希望根据[Action]获取每个[Sstage]的{​​{1}}个[ID]

我试过了:[Time]但它没有给我我想要的东西。有没有人有任何想法?

last(action)over intersect([id],[stage],[time])

1 个答案:

答案 0 :(得分:4)

这个可能并不像大多数人那么明显。

我们必须了解Max([Time])[ID][Stage]的状态。您正在使用Last(),但该方法是获取逻辑的最后一行。如果您的数据没有排序......那么这会产生不希望的结果。因此,请使用Max()方法获取最新日期。

Max([Time]) OVER (Intersect([ID],[Stage]))

现在......这会将[Time]放在您计算的列中...因为您需要相关的[Action],我们需要将其嵌套在IF()语句中以查找[Action]

If([Time]=Max([Time]) OVER (Intersect([ID],[Stage])),[Action])

现在,这会在您计算的列中添加正确的[Action],但仅限于包含Max([Time])的行。

最后一步是在[ID],[Stage]分组中使用另外一个Over()方法

应用此值
First(If([Time]=Max([Time]) OVER (Intersect([ID],[Stage])),[Action])) OVER (Intersect([ID],[Stage]))