计算SQL Server中布尔值更改的次数

前端之家收集整理的这篇文章主要介绍了计算SQL Server中布尔值更改的次数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个表:
[SDate - DateTime]                 [Value] - Represents a boolean
    2010-11-16 10:10:00                    1
    2010-11-16 10:11:00                    0
    2010-11-16 10:12:00                    1
    2010-11-16 10:13:00                    1

我需要一个查询来计算值改变的次数.

例如:

2010-11-16 10:10:00                    0
    2010-11-16 10:11:00                    1
    2010-11-16 10:12:00                    0
    2010-11-16 10:13:00                    0
    2010-11-16 10:14:00                    1
    2010-11-16 10:15:00                    0
    2010-11-16 10:16:00                    1
    ...
                                       5 changes
2010-11-16 10:10:00                    0
    2010-11-16 10:11:00                    0
    2010-11-16 10:12:00                    0
    2010-11-16 10:13:00                    1
    2010-11-16 10:14:00                    1
    2010-11-16 10:15:00                    1
    2010-11-16 10:16:00                    1
    ...                                       
                                        1 change

解决方法

你可以用lag():
select count(*)
from (select t.*,lag(value) order by (sdate) as prev_value
      from table t
     ) t
where prev_value <> value ;
原文链接:https://www.f2er.com/mssql/81016.html

猜你在找的MsSQL相关文章