在SQL中查找重叠时间段的持续时间

时间:2015-07-26 14:13:08

标签: sql oracle-sqldeveloper overlapping

我正在构建一个查询报告,其中我有多种类型的细分,优先级在一个表上,第二个表包含所有类型的细分日期,时间等。(如下所示)排名较低的细分受众群的持续时间不应考虑重叠。

请帮助我,因为我无法找出查询并根据排名获得不包括重叠的细分持续时间

table_Rank

Rank     Code
1        x
2        y
3        z
4        a  
5        b
6        c
7        d
8        r
9        f

Table_Segments

Code    Date    Start Time  End Time    Duration
a   18-Jul-15   17:30        17:45      0:15
c   18-Jul-15   18:00        19:00      1:00
y   18-Jul-15   18:45        19:00      0:15
a   18-Jul-15   20:15        20:20      0:05
b   18-Jul-15   23:45        1:00       1:15
z   19-Jul-15   0:30         1:15       0:45
f   19-Jul-15   2:00         3:00       1:00
  • 具有Ranks = Table_Rank
  • 的表
  • 包含Data = Table_Segments的表

我想要实现的是,在重叠情况下,对于具有更高等级的代码,应考虑重叠跨度 例如     Code Date Start Time End Time Duration

     b    18-Jul-15   23:45          1:00       1:15
     z    19-Jul-15    0:30          1:15       0:45

b 的实际持续时间输出应为45分钟,因为与 z 相比排名较低,而 z 应为45分钟

0 个答案:

没有答案