Puoi utilizzare la seguente query:
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
Campo grp
identifica sezioni (dette anche isole) di record consecutivi aventi lo stesso OutComeID
valore. La query esterna utilizza grp
per enumerare ogni record che appartiene a un '16'
fetta. Ai record che appartengono alle altre sezioni viene assegnato il valore 0
.