Sie können die folgende Abfrage verwenden:
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
Feld grp identifiziert Segmente (auch Inseln genannt) aufeinanderfolgender Datensätze mit derselben OutComeID Wert. Die äußere Abfrage verwendet grp um jeden Datensatz aufzuzählen, der zu einem '16' gehört Scheibe. Den Datensätzen, die zu den anderen Slices gehören, wird der Wert 0 zugewiesen .