2016-04-28 88 views
1

我是Spotfire的新手,所以我希望我能正確地問這個問題。Spotfire連續計數

我的表格包含Corp_ID,DateFlagged列。根據該日期是否有Corp_ID生產,標記的列爲「1」或「0」。

我需要一個自定義表達式,如果被標記的列是「0」,將返回「0」,但如果被標記的列是「1」那麼我需要它返回多少個連續的「1」該字符串爲Corp_ID

Corp_ID Date   Flagged  New Column 
101  1/1/2016  1   1 
101  1/2/2016  0   0 
101  1/3/2016  1   4 
101  1/4/2016  1   4 
101  1/5/2016  1   4 
101  1/6/2016  1   4 
101  1/7/2016  0   0 
101  1/8/2016  0   0 
101  1/9/2016  1   2 
101  1/10/2016 1   2 
102  1/2/2016  1   3 
102  1/3/2016  1   3 
102  1/4/2016  1   3 
102  1/5/2016  0   0 
102  1/6/2016  0   0 
102  1/7/2016  0   0 
102  1/8/2016  1   4 
102  1/9/2016  1   4 
102  1/10/2016 1   4 
102  1/11/2016 1   4 

在此先感謝您的幫助! KC

+0

你可以在數據拉?如果這是來自某種形式的SQL,那麼在Spotfire中執行操作可能更容易。 – Chelsea

回答

1

作爲您用來返回數據的查詢的一部分,這將更容易實現,但如果您必須在spotfire中執行此操作,我建議您這樣做。

1-創建包含[Corp_ID]和[日期](命名「DateHr」)

2-添加名爲「的毗連標記」計算的列,其串接所有以前的標誌值的層級柱:串聯([標記])OVER(Intersect(Parent([Hierarchy.DateHr]),allPrevious([Hierarchy.DateHr])))

3-添加一個計算列,它將在Concat Flags字段中返回0的數目(Named '[0]'):Len([Concat Flags]) - Len(替換([Concat Flags],「0」,「」))

4-添加包含[Corp_ID]和[# (命名爲'CorpHr')

5-添加一個計算列以返回所需值:[標記] = 1時的情況然後總和([標記])OVER(相交([Hierarchy.CorpHr])) else 0 end

注意:以上假設您正在使用Spotfire 7.5版。在早期版本中,在計算列中使用層次結構的語法略有不同)。

+0

謝謝,我認爲這將是我的解決方案,但我有7.0,當我嘗試使用它需要很長時間才能運行。數據在spotfire中出現之前如何在SQL中執行此操作的任何想法? – Kimberly