gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 20:49:03 25 4
gpt4 key购买 nike

我有一个数据表如下。我想根据 [Time] 获取每个 [ID] 的每个 [Sstage] 的最后一个 [Action]

我尝试过:last(action)over intersect([id],[stage],[time])但它没有给我我想要的东西。有人知道吗?

+----+---------+-----------------+------------+-----------------+
| ID | Stage | Action | Time | Last_Action |
+----+---------+-----------------+------------+-----------------+
| 1 | CEO | Decline | 11/01/2016 | requestmoreinfo |
| 1 | CEO | Approve | 11/02/2016 | requestmoreinfo |
| 1 | CEO | Approve | 11/03/2016 | requestmoreinfo |
| 1 | CEO | requestmoreinfo | 11/04/2016 | requestmoreinfo |
| 1 | Manager | requestmoreinfo | 11/05/2016 | Decline |
| 1 | Manager | requestmoreinfo | 11/06/2016 | Decline |
| 1 | Manager | Approve | 11/07/2016 | Decline |
| 1 | Manager | Decline | 11/08/2016 | Decline |
| 2 | User | Decline | 11/09/2016 | Approve |
| 2 | User | Decline | 11/10/2016 | Approve |
| 2 | User | Approve | 11/11/2016 | Approve |
+----+---------+-----------------+------------+-----------------+

最佳答案

这个可能不像大多数那样明显。

我们必须找出 [ID][Stage] 上的 Max([Time]) 的状态是什么。您已接近使用 Last() 但该方法是获取逻辑最后一行。如果您的数据未排序...那么这会产生不希望的结果。因此,使用 Max() 方法来获取最近的日期。

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

现在...这会将 [Time] 放入您的计算列中...因为您需要相关的 [Action],我们需要将其嵌套在用于查找 [Action]

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

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

最后一步是通过另一个 Over() 方法将此值应用于您的 [ID],[Stage] 分组

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

关于Spotfire如何获取列中的最后一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43002866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com