U kunt de volgende zoekopdracht gebruiken:
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
Veld grp
identificeert segmenten (ook wel eilanden genoemd) van opeenvolgende records met dezelfde OutComeID
waarde. De buitenste query gebruikt grp
om elk record op te sommen dat hoort bij een '16'
plak. De records die bij de andere slices horen, krijgen de waarde 0
.