Spotfire 计算列:时差超过列值

Spotfire Calculate column: Time difference OVER column value

各位,

我有一个数据table:

我正在尝试实现循环计算,但遇到了麻烦。

我已经设法将每个主代码作为计算列来执行此操作,并尝试将所有计算出的时间差都放在单个计算列中,如上图所示。

感谢任何帮助!

谢谢。

PS:数据跨越一个范围(1-200 天等),一行与另一行相差 5 秒,主代码可能发生变化。我正在尝试获取每个代码每次迭代的周期。

希望我清楚。

Here are the steps you need to take

  • 在下方插入计算列 #1 并将其命名为 ROWID
  • 在下方插入计算列 #2 并将其命名为 DateTime
  • 在下面插入计算列 #3 并将其命名为 Grouping
  • 在下方插入计算列 #4 并将其命名为 DateDifference

表达式 1

RowId()

表达式 2

DateTime(Concatenate([Date]," ",[Time]))

表达式 3

Min(If(([Master code]<>Max([Master code]) over (Next([ROWID]))) or ([ROWID]=Max([ROWID])),[ROWID] - Min([ROWID]) over (AllPrevious([ROWID])))) OVER (AllNext([ROWID]))

表达式 4

Abs(DateDiff(Min([DateTime]) OVER (Intersect([Grouping],AllPrevious([ROWID]))),[DateTime]))

If you really only want to populate the rows you listed above, then continue from here...

  • 插入计算列 #5 并将其命名为 RowsToKeep

表达式 5

If(([Master code]<>Max([Master code]) over (Next([ROWID]))) or ([ROWID]=Max([ROWID])),[DateDifference])

结果

+-------+------------+-------------+------------------+-------------+----------+----------------+------------+
| ROWID |    Date    |    Time     |     DateTime     | Master code | Grouping | DateDifference | RowsToKeep |
+-------+------------+-------------+------------------+-------------+----------+----------------+------------+
|     1 | 12/07/2017 | 1:05:40 AM  | 12/07/2017 1:05  |         100 |        0 | 0:00:00        |            |
|     2 | 12/07/2017 | 4:45:20 AM  | 12/07/2017 4:45  |         100 |        0 | 3:39:40        |            |
|     3 | 12/07/2017 | 6:20:10 AM  | 12/07/2017 6:20  |         100 |        0 | 5:14:30        | 5:14:30    |
|     4 | 12/07/2017 | 6:20:11 AM  | 12/07/2017 6:20  |         400 |        4 | 0:00:00        |            |
|     5 | 12/07/2017 | 8:15:12 AM  | 12/07/2017 8:15  |         400 |        4 | 1:55:01        |            |
|     6 | 12/07/2017 | 9:12:10 AM  | 12/07/2017 9:12  |         400 |        4 | 2:51:59        |            |
|     7 | 12/07/2017 | 9:45:45 AM  | 12/07/2017 9:45  |         400 |        4 | 3:25:34        | 3:25:34    |
|     8 | 12/07/2017 | 9:45:46 AM  | 12/07/2017 9:45  |         120 |        6 | 0:00:00        |            |
|     9 | 12/07/2017 | 10:20:35 AM | 12/07/2017 10:20 |         120 |        6 | 0:34:49        | 0:34:49    |
|    10 | 12/07/2017 | 10:20:36 AM | 12/07/2017 10:20 |         100 |       10 | 0:00:00        |            |
|    11 | 12/07/2017 | 10:25:45 AM | 12/07/2017 10:25 |         100 |       10 | 0:05:09        |            |
|    12 | 12/07/2017 | 11:15:55 AM | 12/07/2017 11:15 |         100 |       10 | 0:55:19        |            |
|    13 | 12/07/2017 | 12:22:22 PM | 12/07/2017 12:22 |         100 |       10 | 2:01:46        | 2:01:46    |
|    14 | 12/07/2017 | 12:22:23 PM | 12/07/2017 12:22 |         350 |       16 | 0:00:00        |            |
|    15 | 12/07/2017 | 3:35:40 PM  | 12/07/2017 15:35 |         350 |       16 | 3:13:17        |            |
|    16 | 12/07/2017 | 3:42:25 PM  | 12/07/2017 15:42 |         350 |       16 | 3:20:02        |            |
|    17 | 12/07/2017 | 4:38:17 PM  | 12/07/2017 16:38 |         350 |       16 | 4:15:54        |            |
|    18 | 12/07/2017 | 4:52:35 PM  | 12/07/2017 16:52 |         350 |       16 | 4:30:12        |            |
|    19 | 12/07/2017 | 4:52:40 PM  | 12/07/2017 16:52 |         350 |       16 | 4:30:17        | 4:30:17    |
|    20 | 12/07/2017 | 4:52:41 PM  | 12/07/2017 16:52 |         100 |       19 | 0:00:00        |            |
|    21 | 12/07/2017 | 7:23:23 PM  | 12/07/2017 19:23 |         100 |       19 | 2:30:42        |            |
|    22 | 12/07/2017 | 8:23:20 PM  | 12/07/2017 20:23 |         100 |       19 | 3:30:39        | 3:30:39    |
+-------+------------+-------------+------------------+-------------+----------+----------------+------------+