Если у вас нет доступа к функции LEAD
, вы можете присоединиться к таблице вместе с ней, чтобы найти следующую строку :
SELECT curr.time, curr.event, MIN(next.time) - curr.time AS diff
FROM testdata AS curr
INNER JOIN testdata AS next ON next.event = curr.event AND next.time > curr.time
GROUP BY curr.time, curr.event
ORDER BY diff DESC
LIMIT 1
Результат:
+------+-------+------+
| time | event | diff |
+------+-------+------+
| 4 | b | 11 |
+------+-------+------+
Вот как будут выглядеть результаты без сортировки и ограничения:
+------+-------+------+
| time | event | diff |
+------+-------+------+
| 1 | a | 1 |
| 2 | a | 3 |
| 5 | a | 2 |
| 1 | b | 3 |
| 4 | b | 11 |
+------+-------+------+