我有有安排的方式爲數據,看起來像這樣的表:識別序列開始和結束在SQL Server
ID | BOUNDARY | TIMESTAMP
1 | NULL | 2016-01-01 00:20:00
2 | A | 2016-01-01 00:20:10
3 | A | 2016-01-01 00:20:14
4 | A | 2016-01-01 00:20:22
5 | NULL | 2016-01-01 00:20:38
6 | A | 2016-01-01 00:20:45
7 | B | 2016-01-01 00:21:02
8 | B | 2016-01-01 00:21:12
9 | A | 2016-01-01 00:21:16
10 | A | 2016-01-01 00:21:22
11 | C | 2016-01-01 00:21:30
12 | A | 2016-01-01 00:21:35
13 | A | 2016-01-01 00:21:40
14 | A | 2016-01-01 00:21:46
15 | A | 2016-01-01 00:21:50
我想要做的是找到一個有效的方式來標記的ID和SQL Server 2014中序列的開始和結束的時間戳。段將是邊界不爲空並且至少連續兩次重複。例如,第一部分將來自ID 2-4,第二部分將是ID 7-8,第三部分將是9-10。
我首先嚐試的方法是創建兩個列,一個「startflag」列和一個「endflag」列。我創建更新查詢正確標記的開始和結束,但我想創建一個視圖,我可以把它看成一個記錄,如下圖所示:
BOUNDARY | START ID | END ID
A | 2 | 4
B | 7 | 8
A | 9 | 10
A | 12 | 15
http://stackoverflow.com/a/31704558/3585278 – Danieboy
爲什麼Boundary =「C」未包含在最終答案中?因爲沒有兩個記錄? –
因爲需要連續至少有2個實例。 – user3150002