比方说,我有这个(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:当然!谢谢。 –