Mysql выберите копировать столбец в другой, идентификатор не последовательный

#mysql

#mysql

Вопрос:

я хочу получить интервал времени для каждого события во всех областях моего рабочего места, поэтому я получил эту таблицу, которая показывает время возникновения события

 ID | area |   TIME 1
01 |  A   |  2016-09-20 14:55:54 
02 |  A   |  2016-09-21 18:00:00
04 |  A   |  2016-09-23 20:14:14
06 |  B   |  2016-09-24 13:52:24
10 |  B   |  2016-09-26 13:33:34
13 |  B   |  2016-09-28 18:22:46
  

как мы можем видеть, идентификатор не является последовательным, потому что в запросе отфильтрованы другие данные, я хочу, чтобы результат был таким:

 area |          TIME 1       |       TIME 2
 A   |  2016-09-20 14:55:54  | 2016-09-21 18:00:00
 A   |  2016-09-21 18:00:00  | 2016-09-23 20:14:14
 B   |  2016-09-24 13:52:24  | 2016-09-26 13:33:34
 B   |  2016-09-26 13:33:34  | 2016-09-28 18:22:46
  

есть ли способ сделать это в выборе?, я использую внутреннее соединение с тем же «временем 1», но оно получает «время 2» для каждого «времени 1», в результате чего для области A:

     area |          TIME 1       |       TIME 2
     A   |  2016-09-20 14:55:54  | 2016-09-20 14:55:54
     A   |  2016-09-20 14:55:54  | 2016-09-21 18:00:00
     A   |  2016-09-20 14:55:54  | 2016-09-23 20:14:14
     A   |  2016-09-21 18:00:00  | 2016-09-20 14:55:54
     A   |  2016-09-21 18:00:00  | 2016-09-21 18:00:00
     A   |  2016-09-21 18:00:00  | 2016-09-23 20:14:14
     A   |  2016-09-23 20:14:14  | 2016-09-20 14:55:54
     A   |  2016-09-23 20:14:14  | 2016-09-21 18:00:00
     A   |  2016-09-23 20:14:14  | 2016-09-23 20:14:14
  

Ответ №1:

Демонстрация SQL Fiddle

 SELECT *
FROM Table1 T1
JOIN Table1 T2
  ON T1.area = T2.area 
 AND T2.ID = (SELECT MIN(T3.ID) 
              FROM Table1 T3
              WHERE T3.ID > T1.ID
                AND T3.area = T1.area)
  

ВЫВОД

введите описание изображения здесь

РЕДАКТИРОВАТЬ: я предполагаю, что если ID_1 < ID_2 тогда Time_1 < Time_2