如何确定多行的时间范围是否重叠

时间:2019-05-10 20:01:37

标签: mysql

我不确定最好的描述方式,因此我将提供两个示例方案,然后进行解释:

表名称:“ interactionData”

场景1

type | startTime          | endTime            | timeTaken  
alarm  2019-05-01 09:16:00  2019-05-01 09:17:00  60  
call   2019-05-01 09:45:00  2019-05-01 10:00:00  900  
email  2019-05-01 09:15:00  2019-05-01 10:16:00  3660

方案2

type | startTime          | endTime            | timeTaken  
alarm  2019-05-01 10:00:00  2019-05-01 10:01:00  60  
call   2019-05-01 09:30:00  2019-05-01 10:15:00  2700  
email  2019-05-01 09:15:00  2019-05-01 10:16:00  3660  

在上述情况下,员工会进行不同时间的互动。某些互动可以同时发生并分配给同一名员工,因此对于上述情况,可以想象是由同一名员工处理这三种互动。

我需要确定在收到电子邮件的时间范围内发生的所有交互,以了解在收到电子邮件的时间范围内发生的交互需要花费多长时间(timeTaken以秒为单位)。

在第一种情况下,现在单独执行此操作就很容易了,因为我可以对“ 2019-05-01 09:15:00”和“ 2019-05-01 09:15:00”之间发生的警报和呼叫交互(总计690秒)进行求和(timeTaken) '2019-05-01 10:16:00'。我遇到的问题是方案2,在这里我基本上需要忽略警报交互,因为我只关心在电子邮件时间范围内花费的总时间,在方案2中该时间为2700秒(因为该警报是在通话过程中触发的,并未增加使用时间。

我完全不知如何编写查询来满足这两种情况。任何帮助表示赞赏!

注意:我需要的查询必须使用电子邮件的开始和结束时间来搜索在该时间范围内发生的互动,因此标记为重复的解决方案不要在这种情况下可以工作/申请。

0 个答案:

没有答案