Můžete použít následující dotaz:
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
Pole grp
identifikuje řezy (nazývané také ostrovy) po sobě jdoucích záznamů se stejným OutComeID
hodnota. Vnější dotaz používá grp
za účelem vyjmenování každého záznamu, který patří do '16'
plátek. Záznamům, které patří do ostatních řezů, je přiřazena hodnota 0
.