【发布时间】:2014-12-04 15:54:25
【问题描述】:
我有一个由一系列时间数据组成的表,如下所示:
+--------+--------------------+---------------------+
| person | start | end |
+--------+--------------------+---------------------+
| a |2014-12-04 13:00:00 | 2014-12-04 14:00:00 |
| a |2014-12-04 13:30:00 | 2014-12-04 14:30:00 |
| b |2014-12-04 13:00:00 | 2014-12-04 14:00:00 |
| b |2014-12-04 13:30:00 | 2014-12-04 14:30:00 |
| b |2014-12-04 14:00:00 | 2014-12-04 15:00:00 |
| a |2014-12-04 19:00:00 | 2014-12-04 20:00:00 |
| a |2014-12-04 19:30:00 | 2014-12-04 20:30:00 |
+--------+--------------------+---------------------+
我想查找时间重叠并输出以下内容:
+--------+--------------------+---------------------+
| person | start | end |
+--------+--------------------+---------------------+
| a |2014-12-04 13:00:00 | 2014-12-04 14:30:00 |
| b |2014-12-04 13:00:00 | 2014-12-04 15:00:00 |
| a |2014-12-04 19:00:00 | 2014-12-04 20:30:00 |
+--------+--------------------+---------------------+
所以我正在寻找一个查询来查找时间间隔重叠的实例,我想查看与时间间隔相关的人以及最早的时间段和最新的时间段。
很难解释,但我希望你能明白!
【问题讨论】:
-
您使用的是哪个 DBMS?后格雷斯?甲骨文?