2016-07-06 123 views
0

屏幕截圖如下。一個顯示我的數據集。第二個顯示了我想要計算的內容。我每天每口井有一個記錄。有一個停機時間欄,告訴我在一個給定的日子裏井下多少個小時。如果計算遇到停機時間低於24小時的記錄(按日期順序),則應計算停止並返回空值,然後再次提取連續的幾天,當停機時間= 24.Spotfire - 連續數天宕機計數

然後,我需要確定連續幾天的停機時間爲60天或更長的日期塊,以便我可以計算特定月份內沒有停機的井數。如果一口井有連續60天的停工時間超過三個月,我將從這三個月的井計數中排除。

Screen shot 1 Screen shot 2

+0

你可以嘗試添加數據再次設置截屏?我沒看到它。謝謝。 – scsimon

+0

我無法看到第二個屏幕截圖 – jleviaguirre

+0

有沒有機會附加一個示例數據集?我覺得這將需要大量的測試 – scsimon

回答

0

下面是當連續順序應該達到你想要的結果進入計算列的字符串。如果您願意,可以將其中的一些組合起來,以減少總列數。另外,我已經將這些列從單個樣本數據集中分離出來了,但是我猜測您會有不止一個數據集,所以您必須在必要時將您的唯一ID納入over語句中。

DowntimeFlag = If([DownHours]=24,1,0) 
DowntimeFlagCompare = SN(Avg([DowntimeFlag]) over (Previous([Date])),If([Date]=Min([Date]),if([DowntimeFlag]=1,1,0))) 
ResetCounterFlag = If(([DowntimeFlag]<>[DateFlagCompare]) and ([DowntimeFlag]=1),1,If([Date]=Min([Date]),if([DowntimeFlag]=1,1,0),0)) 
CumResetCounter = Sum([ResetCounterFlag]) over (AllPrevious([Date])) 
SpotfireCount = If([DowntimeFlag]=1,Sum([DowntimeFlag]) over (Intersect([CumResetCounter],AllPrevious([Date]))),null) 

當這些輸入,這是你的數據表看起來是這樣的:

Consecutive Days of Downtime Data Table

+0

我需要添加幾個相交來說明表的粒度級別,並將其中一個列名稱(第二個公式)從DateFlagCompare更改爲DowntimeFlagCompare,但它確實有效。謝謝! – JulieBMA