Du kan använda följande fråga:
SELECT RaidNo, OutComeID, RN,
CASE
WHEN OutComeID <> 16 THEN 0
ELSE ROW_NUMBER() OVER (PARTITION BY OutComeID, grp ORDER BY RN)
END AS Result
FROM (
SELECT RaidNo, OutComeID, RN,
RN - ROW_NUMBER() OVER (PARTITION BY OutComeID ORDER BY RN) AS grp
FROM mytable) AS t
ORDER BY RN
Fält grp
identifierar delar (även kallade öar) av på varandra följande poster med samma OutComeID
värde. Den yttre frågan använder grp
för att räkna upp varje post som tillhör en '16'
skiva. Posterna som hör till de andra segmenten tilldelas värdet 0
.