我想創建一個計算列來顯示按[案例ID],[階段]和[動作]分組的時間動作結束。舞臺的順序不是必須的字母,它可以重複。 [臺] 'C' 後說,我們可以有另一個[臺] 'C' 在將來spotfire-如何找到創建一列來計算下一個階段的時間
感謝,
我想創建一個計算列來顯示按[案例ID],[階段]和[動作]分組的時間動作結束。舞臺的順序不是必須的字母,它可以重複。 [臺] 'C' 後說,我們可以有另一個[臺] 'C' 在將來spotfire-如何找到創建一列來計算下一個階段的時間
感謝,
感謝更新的測試數據。數據類型爲極端詢問時很重要。另外,測試數據應儘可能接近實際數據,否則解決方案通常不會縮放。例如,在測試數據中,這些值只是時間。按時排序並不考慮當天的情況,因此它的處理都是平等的。由於這些值實際上是DateTime,因此我已將其添加到測試數據中。這些表達式會爲您提供您問題中確定的預期結果。
Rank([Time_Action_Begin],"asc",[Case ID]) as [Rank]
Min([Time_Action_Begin]) OVER (Intersect([Case ID],Next([Rank])))
成績
+---------+-------+----------+------------------------+------------------------+------+
| Case ID | Stage | Action | Time_Action_Begin | Time_Action_End | Rank |
+---------+-------+----------+------------------------+------------------------+------+
| 1 | A | approve | 01/01/2016 11:30:00 PM | 01/02/2016 12:30:00 AM | 1 |
| 1 | A | approve | 01/01/2016 11:30:00 PM | 01/02/2016 12:30:00 AM | 1 |
| 1 | B | approve | 01/02/2016 12:30:00 AM | 01/02/2016 1:30:00 AM | 3 |
| 1 | B | approve | 01/02/2016 12:30:00 AM | 01/02/2016 1:30:00 AM | 3 |
| 1 | C | approve | 01/02/2016 1:30:00 AM | 01/02/2016 2:30:00 AM | 5 |
| 1 | C | approve | 01/02/2016 1:30:00 AM | 01/02/2016 2:30:00 AM | 5 |
| 1 | D | approve | 01/02/2016 2:30:00 AM | 01/02/2016 3:30:00 AM | 7 |
| 1 | D | approve | 01/02/2016 2:30:00 AM | 01/02/2016 3:30:00 AM | 7 |
| 1 | E | approve | 01/02/2016 3:30:00 AM | 01/02/2016 4:30:00 AM | 9 |
| 1 | E | approve | 01/02/2016 3:30:00 AM | 01/02/2016 4:30:00 AM | 9 |
| 1 | F | complete | 01/02/2016 4:30:00 AM | 01/02/2016 5:30:00 AM | 11 |
| 1 | F | complete | 01/02/2016 4:30:00 AM | 01/02/2016 5:30:00 AM | 11 |
| 1 | C | approve | 01/02/2016 5:30:00 AM | | 13 |
| 1 | C | approve | 01/02/2016 5:30:00 AM | | 13 |
| 2 | A | approve | 01/01/2016 10:30:00 PM | 01/02/2016 12:30:00 AM | 1 |
| 2 | A | approve | 01/01/2016 10:30:00 PM | 01/02/2016 12:30:00 AM | 1 |
| 2 | B | approve | 01/02/2016 12:30:00 AM | 01/02/2016 2:30:00 AM | 3 |
| 2 | B | approve | 01/02/2016 12:30:00 AM | 01/02/2016 2:30:00 AM | 3 |
| 2 | C | approve | 01/02/2016 2:30:00 AM | 01/02/2016 3:30:00 AM | 5 |
| 2 | C | approve | 01/02/2016 2:30:00 AM | 01/02/2016 3:30:00 AM | 5 |
| 2 | D | approve | 01/02/2016 3:30:00 AM | 01/02/2016 4:30:00 AM | 7 |
| 2 | D | approve | 01/02/2016 3:30:00 AM | 01/02/2016 4:30:00 AM | 7 |
| 2 | E | approve | 01/02/2016 4:30:00 AM | 01/02/2016 5:30:00 AM | 9 |
| 2 | E | approve | 01/02/2016 4:30:00 AM | 01/02/2016 5:30:00 AM | 9 |
| 2 | F | complete | 01/02/2016 5:30:00 AM | 01/02/2016 6:30:00 AM | 11 |
| 2 | F | complete | 01/02/2016 5:30:00 AM | 01/02/2016 6:30:00 AM | 11 |
| 2 | C | approve | 01/02/2016 6:30:00 AM | | 13 |
| 2 | C | approve | 01/02/2016 6:30:00 AM | | 13 |
+---------+-------+----------+------------------------+------------------------+------+
有無論如何都要考慮[病例ID]?我希望每個案例ID都能指定表達式。我試過Min([Time_Action_Begin])OVER相交(NextPeriod([Time_Action_Begin]),[case id])。然而,它並沒有給我我想要的東西。 –
@ BenWang這就是爲什麼提供足夠的測試數據和預期結果非常重要。查看更新的答案。 – scsimon
謝謝你的回答。我將在未來的發佈中記住這一點。你能否介紹一下你使用的next()方法? –
等什麼將決定下一次?數據是否在導入之前排序,因此應用自定義排序是不必要的?這些數據類型是真正的字符嗎? – scsimon
感謝您的回覆! 1)下一次只是下一階段的時間。例如,下一次時間a是時間b beacuse階段B在階段A之後。2)如果您可以提供按時間排序數據的方法,那將是非常好的。 3)數據類型是'日期和時間',字符只是簡化符號。 –
謝謝@BenWang。你能提供一個更現實/實際的數據樣本嗎?數據類型在這種情況下非常重要,因此用於此測試數據的方法不適用於您的真實數據。乾杯。 – scsimon