有什么办法可以存储最后一个迭代的行结果,并将其用于下一行迭代?
例如我有一个表(Time_Table).
__ Key type timeStamp 1 ) 1 B 2015-06-28 09:00:00 2 ) 1 B 2015-06-28 10:00:00 3 ) 1 C 2015-06-28 11:00:00 4 ) 1 A 2015-06-28 12:00:00 5 ) 1 B 2015-06-28 13:00:00
现在假设我有一个常数为90分钟的异常时间.
如果我开始检查我的Time_Table,那么:
>对于第一行,因为在09:00:00之前没有行,它会直接把这个记录放在我的目标表中.现在我的参考点是在9:00:00.
>对于第二行在10:00:00,最后一个参考点为09:00:00,TIMESTAMPDIFF(s,09:00:00,10:00:00)为60,小于要求的90.不要将此行添加到我的目标表.
>对于第三行,最后一个记录的例外是在09:00:00,11:00:00)是120,这大于所需的90,所以我选择这个记录设置参考点为11:00:00.
>对于第四行TIMESTAMPDIFF(s,11:00:00,12:00:00).类似地,它不会被保存.
>这一个再次被保存.
目标表
__ Key type timeStamp 1 ) 1 B 2015-06-28 09:00:00 2 ) 1 C 2015-06-28 11:00:00 3 ) 1 B 2015-06-28 13:00:00
我的做法:
SELECT * FROM Time_Table A WHERE NOT EXISTS( SELECT 1 FROM Time_Table B WHERE A.timeStamp > B.timeStamp AND abs(TIMESTAMPDIFF(s,B.timeStamp,A.timeStamp)) > 90 )
但这实际上不会起作用.