比方說,我有這個(MySQL的)數據庫,通過增加時間戳排序:SQL:選擇行,其中列值從先前行改變
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和之間改變系統A),2011-01-06,2011-01-07。
查詢應具有的記錄數萬臺快速執行。
感謝
爲什麼'2011-01-07'返回和'2011-01-04'不是? –
@Andriy:2011-01-04不會返回,因爲狀態A在2011-01-02和2011-01-04兩者均可用(均適用於系統B)。 –
@Jonathan:當然!謝謝。 –