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 .