假設我有以下記錄:TSQL計數連續記錄
KeyCol ColA ColB
------------------------
1 1 A
2 2 B
3 2 B
4 2 C
5 2 B
6 1 A
7 2 B
8 2 B
我想算有這個結果可樂COLB相同值的連續記錄
Col A ColB Start Count
---------------------------------
1 A 1 1
2 B 2 2
2 C 4 1
2 B 5 1
1 A 6 1
2 B 7 2
有很多相似關於分組和計數的問題,但我沒有看到如何將它翻譯成這個問題。特別是許多其他示例沒有明確的鍵列。
我曾嘗試使用的分區函數計算的連續記錄數,並從那裏:
SELECT KeyCol, ColA, ColB
,ROW_NUMBER() OVER
( PARTITION
BY ColA, ColB
ORDER BY KeyCol
) as RowNo
FROM MyTable
然而,這會產生這樣的結果:
KeyCol Col A ColB RowNo
---------------------------------
1 1 A 1
2 2 B 1
3 2 B 2
4 2 C 1
5 2 B 3 (Needs to be 1)
6 1 A 2 (Needs to be 1)
7 2 B 4 (Needs to be 1)
8 2 B 5 (Needs to be 2)
正如你所看到的,即使記錄不連續,所有同一ColA,ColB的行號也會增加。
非常感謝!
您嘗試過什麼嗎?如果你有,編輯查詢到你的問題。 –
嗨TT,感謝您的評論。我剛剛添加了一個我嘗試過的查詢。 – Roeland