請參閱小提琴:http://sqlfiddle.com/#!6/e6768/2TSQL - 很難分組
我有數據,如下圖所示:
DRIVER DROP
1 1
1 2
1 ReturnToBase
1 4
1 5
1 ReturnToBase
1 6
1 7
2 1
2 2
2 ReturnToBase
2 4
我想組我的數據,所以對於每個驅動器,每個組返回到基地有一個分組號碼。
我的輸出應該是這樣的:
DRIVER DROP GROUP
1 1 1
1 2 1
1 ReturnToBase 1
1 4 2
1 5 2
1 ReturnToBase 2
1 6 3
1 7 3
1 ReturnToBase 3
2 1 1
2 2 1
2 ReturnToBase 1
2 4 2
我試圖得到這個結果與窗口功能的組合,但我一直英里到目前爲止
下面是我有什麼,所以遠遠的說,它不應該是功能性的,我試圖弄清楚它是如何完成的,如果它甚至是可能的。
SELECT
ROW_NUMBER() OVER (Partition BY Driver order by Driver Desc) rownum,
Count(1) OVER (Partition By Driver Order By Driver Desc) counter,
Count
DropNo,
Driver,
CASE DropNo
WHEN 'ReturnToBase' THEN 1 ELSE 0 END AS EnumerateRound
FROM
Rounds
您可以添加您嘗試過的sql嗎?看起來Row_Number應該適合這裏 – Mark
您正在尋找某種遞歸LEAD LAG公用表表達式來完成此操作。 – saarrrr
還有一個順序標識符,對不起,我應該在示例中包含該標識符。 –