2016-07-06 29 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