Имеем таблицу, которая содержит временные интервалы вида:
+---------------------+---------------------+
| date_from | date_to |
+---------------------+---------------------+
| 2017-01-01 00:00:00 | 2017-01-01 00:00:10 |
| 2017-01-01 00:00:11 | 2017-01-01 00:10:00 |
| 2017-01-01 00:10:20 | 2017-01-01 00:30:00 |
| 2017-01-01 00:29:00 | 2017-01-01 00:30:10 |
| 2017-01-01 01:00:00 | 2017-01-01 02:00:00 |
| 2017-01-01 02:00:00 | 2017-01-01 04:00:00 |
| 2017-01-01 05:00:00 | 2017-01-01 08:00:00 |
+---------------------+---------------------+
необходимо получить из нее нечто подобное
+---------------------+---------------------+
| date_from | date_to |
+---------------------+---------------------+
| 2017-01-01 00:00:00 | 2017-01-01 00:00:10 |
| 2017-01-01 00:00:11 | 2017-01-01 00:10:00 |
| 2017-01-01 00:10:20 | 2017-01-01 00:30:10 |
| 2017-01-01 01:00:00 | 2017-01-01 04:00:00 |
| 2017-01-01 05:00:00 | 2017-01-01 08:00:00 |
+---------------------+---------------------+
т.е. сгруппировать по пересекающимся интервалам, что из 2017-01-01 01:00:00-2017-01-01 02:00:00 и 2017-01-01 02:00:00- 2017-01-01 04:00:00 получилось 2017-01-01 01:00:00-2017-01-01 04:00:00