Скажем, у меня есть эта (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.
Запрос должен выполняться быстро, когда таблица содержит десятки тысяч записей.
Спасибо