Du kan bruge følgende forespørgsel:
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
Felt grp
identificerer udsnit (også kaldet øer) af på hinanden følgende poster med samme OutComeID
værdi. Den ydre forespørgsel bruger grp
for at opregne hver post, der hører til en '16'
skive. De poster, der hører til de andre udsnit, tildeles værdien 0
.