我在 Oracle 11g 数据库中有一个类似于以下内容的表:
process_times:
--------------------------------------------
machine_id | load_id | start_time | end_time
一些示例记录可能如下所示:
process_times:
----------------------------------------------------------------
machine_id | load_id | start_time | end_time
----------------------------------------------------------------
220 | 25 | 06/24/2012 04:29:00 | 06/25/2012 04:42:38
187 | 23 | 06/22/2012 14:41:00 | 06/24/2012 00:34:32
187 | 18 | 06/20/2012 11:57:00 | 06/20/2012 23:53:51
我正在尝试编写一个查询,该查询将返回一个与表示每台机器负载之间的停机时间的属性的关系。停机时间是指给定机器的每个 end_time 和以下 start_time 之间的时间。
因此,对于上面的示例,我会得到如下结果:
result:
----------------------
machine_id | down_time
----------------------
220 | 0
187 | (06/22/2012 14:41:00 - 06/20/2012 23:53:51) -- the actual result, I wrote it like this to be more clear
下午的大部分时间我一直在修补这个问题,这只是我真正想要写的查询的先决条件,所以我想我会发帖看看是否有人有任何指示让我走向正确方向。
编辑我应该提到的另一个限制是我需要让结果列出每台机器的单独停机时间,而不仅仅是给定时间段内的停机时间总量。