我需要根據其他列中的值計算連續的行。計數連續的行 - 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