MySQL возвращает первую и последнюю запись для последовательных идентичных результатов

Я использую MySQL, и у меня есть таблица с названием «results», в которой хранятся результаты монитора, который определяет, работает ли служба в определенный момент времени.

+-----------+------------+---------------------+--------+
| result_id | service_id | time_stamp          | result |
+-----------+------------+---------------------+--------+
|     1     |        1   | 0000-00-00 00:01:00 | down   |
|     2     |        1   | 0000-00-00 00:02:00 | up     |
|     3     |        1   | 0000-00-00 00:03:00 | up     |
|     4     |        1   | 0000-00-00 00:04:00 | up     |
|     5     |        1   | 0000-00-00 00:05:00 | down   |
|     6     |        1   | 0000-00-00 00:06:00 | down   |
|     7     |        1   | 0000-00-00 00:07:00 | up     |
|     8     |        1   | 0000-00-00 00:08:00 | down   |
|     9     |        1   | 0000-00-00 00:09:00 | up     |
|     10    |        2   | 0000-00-00 00:03:00 | up     |
+-----------+------------+---------------------+--------+

Я хочу получить таблицу результатов, которая просматривает результаты для данной службы и возвращает время, когда она была впервые записана как отключенная, и последний раз (последовательно), и наоборот, если она была отключена. Это поможет мне записать продолжительность простоя службы.

Результаты, которые я ищу, будут выглядеть так.

Для service_id 1 ...

+-----------------------+---------------------+--------+
| start_time            | end_time            | result |
+-----------------------+---------------------+--------+
| 0000-00-00 00:01:00   | 0000-00-00 00:01:00 | down   |
| 0000-00-00 00:02:00   | 0000-00-00 00:04:00 | up     |
| 0000-00-00 00:05:00   | 0000-00-00 00:06:00 | down   |
| 0000-00-00 00:07:00   | 0000-00-00 00:07:00 | up     |
| 0000-00-00 00:08:00   | 0000-00-00 00:08:00 | down   |
| 0000-00-00 00:09:00   | 0000-00-00 00:09:00 | up     |
+-----------------------+---------------------+--------+

Я мог бы получить эту информацию на Java или PHP довольно легко, но я бы предпочел использовать SQL-запрос. Мои навыки SQL не особенно продвинуты. Как бы я подошел к этому?

Ответы на вопрос(1)

Ваш ответ на вопрос