我需要根据其他列中的值计算连续的行。计数连续的行 - SQL Server 2008
当谈到SQL时,我完全是新手 - 所以问一下如果有什么不清楚的地方。
我有SQL Server 2008,因此LEAD()
和LAG()
不起作用,与基于分区的窗口大小的OVER()相同。
实施例的数据集:
SLOT Blocked
-------------------------------
2015-02-09 07:00:00.000 0
2015-02-09 07:15:00.000 0
2015-02-09 07:30:00.000 0
2015-02-09 07:45:00.000 1
2015-02-09 08:00:00.000 1
2015-02-09 08:15:00.000 1
2015-02-09 08:30:00.000 0
2015-02-09 08:45:00.000 0
2015-02-09 09:00:00.000 0
2015-02-09 09:15:00.000 0
2015-02-09 09:30:00.000 1
2015-02-09 09:45:00.000 1
2015-02-09 10:00:00.000 1
2015-02-09 10:15:00.000 1
2015-02-09 10:30:00.000 0
2015-02-09 10:45:00.000 0
2015-02-09 11:00:00.000 0
2015-02-09 11:15:00.000 0
2015-02-09 11:30:00.000 0
2015-02-09 11:45:00.000 0
2015-02-09 12:00:00.000 0
的数据由SLOT
排序。我想对分区where Blocked = 0
上的行进行计数。
的结果集我想获得:
SLOT Blocked RowNum
-------------------------------------------
2015-02-09 07:00:00.000 0 1
2015-02-09 07:15:00.000 0 2
2015-02-09 07:30:00.000 0 3
2015-02-09 07:45:00.000 1 0
2015-02-09 08:00:00.000 1 0
2015-02-09 08:15:00.000 1 0
2015-02-09 08:30:00.000 0 1
2015-02-09 08:45:00.000 0 2
2015-02-09 09:00:00.000 0 3
2015-02-09 09:15:00.000 0 4
2015-02-09 09:30:00.000 1 0
2015-02-09 09:45:00.000 1 0
2015-02-09 10:00:00.000 1 0
2015-02-09 10:15:00.000 1 0
2015-02-09 10:30:00.000 0 1
2015-02-09 10:45:00.000 0 2
2015-02-09 11:00:00.000 0 3
2015-02-09 11:15:00.000 0 4
2015-02-09 11:30:00.000 0 5
2015-02-09 11:45:00.000 0 6
2015-02-09 12:00:00.000 0 7
提前感谢!
只是像这种情况下的情况下,继续进行条件遮光时= 0那么ROW_NUMBER()OVER(PARTITION BY阻止ORDER BY封锁)ELSE 0 END – mohan111 2015-02-11 09:17:19
可能是我没有澄清足够 - 在“阻塞”列中找到1后,计数器必须重新启动,如预期结果示例中所示。也许我的terribad英语是问题。 – TotallyNewb 2015-02-11 09:42:07
数据中是否会有空白? – 2015-02-11 09:47:01