我对T-SQL非常狡猾,但我还没有深入研究跨度和分区,我怀疑需要这样的东西。我有一个包含两列的表,日期时间和状态,状态为" ON"或" OFF"。我正在寻找一个查询,它会给我一个结果集,说明从OFF到ON或从ON到OFF的转换。
为了澄清,我有一个进程报告每个(间隔)外部对象的状态,因此将有多个ON状态'然后是多个OFF状态' - 我对过渡感兴趣。
可选地,最后一次转换与此转换之间的时间差(例如,它转换为" ON"之前已经过了多长时间" OFF")
如果没有游标,我没有看到任何方法。
提前谢谢!
答案 0 :(得分:1)
什么版本的SQL? 2012年对LEAD和LAG运营商提供支持,这应该有效。
SELECT LAG(field) over([partition by field[,field]] order by field[,field])