У меня есть таблица с устройствами и их состоянием.Каждые 5 минут состояние каждого устройства сохраняется в базе данных.Каждая запись в базе данных содержит имя устройства (ABC, DEF и т. Д.), Состояние устройства (1 = ОК, 6 = вниз и 11 = запланировано вниз), время добавления записи в базу данных идата добавления записи.
Теперь я хотел бы иметь время начала и окончания изменения состояния каждого устройства.
Я использую MySQL версии 5.6.
CREATE TABLE IF NOT EXISTS `demo` (
`Id` INT(11) NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(255) NOT NULL,
`StateN` INT(11) NOT NULL,
`TimeAdded` INT(11) NOT NULL,
`DateAdded` INT(11) NOT NULL,
PRIMARY KEY (`Id`)
);
INSERT INTO `demo` (`Id`, `Name`, `StateN`, `TimeAdded`, `DateAdded`) VALUES
(1, 'ABC', 1, 1540250401, 1540245600),
(2, 'DEF', 1, 1540250401, 1540245600),
(3, 'GHI', 1, 1540250401, 1540245600),
(4, 'JKL', 11,1540250401, 1540245600),
(5, 'ABC', 1, 1540250701, 1540245600),
(6, 'DEF', 1, 1540250701, 1540245600),
(7, 'GHI', 1, 1540250701, 1540245600),
(8, 'JKL', 11, 1540250701, 1540245600),
(9, 'ABC', 1, 1540251001, 1540245600),
(10, 'DEF', 1, 1540251001, 1540245600),
(11, 'GHI', 6, 1540251001, 1540245600),
(12, 'JKL', 11, 1540251001, 1540245600),
(13, 'ABC', 1, 1540251301, 1540245600),
(14, 'DEF', 1, 1540251301, 1540245600),
(15, 'GHI', 6, 1540251301, 1540245600),
(16, 'JKL', 11, 1540251301, 1540245600),
(17, 'ABC', 1, 1540251601, 1540245600),
(18, 'DEF', 1, 1540251601, 1540245600),
(19, 'GHI', 1, 1540251601, 1540245600),
(20, 'JKL', 11,1540251601, 1540245600);
И я хотел бы получить следующий вывод:
Name StateN StartTime EndTime
ABC 1 1540250401 1540251601
DEF 1 1540250401 1540251601
GHI 1 1540250401 1540250701
GHI 6 1540251001 1540251301
GHI 1 1540251601 1540251601
JKL 11 1540250401 1540251601