Скажем, у меня есть эта (MySQL) база данных, отсортированная по возрастающей метке времени:
Timestamp System StatusA StatusB
2011-01-01 A Ok Ok
2011-01-02 B Ok Ok
2011-01-03 A Fail Fail
2011-01-04 B Ok Fail
2011-01-05 A Fail Ok
2011-01-06 A Ok Ok
2011-01-07 B Fail Fail
Как выбрать строки, в которых StatusA изменен из предыдущей строки для этой системы? StatusB не имеет значения (я показываю это только в этом вопросе, чтобы проиллюстрировать, что может быть много последовательных строк для каждой системы, где StatusA не изменяется). В приведенном выше примере запрос должен возвращать строки 2011-01-03 (StatusA изменен между 2011-01-01 и 2011-01-03 для SystemA), 2011-01-06, 2011-01-07.
Запрос должен выполняться быстро, когда таблица содержит десятки тысяч записей.
Спасибо