Anda dapat menggunakan kueri berikut:
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
Bidang grp
mengidentifikasi irisan (juga disebut pulau) dari catatan berurutan yang memiliki OutComeID
yang sama nilai. Kueri luar menggunakan grp
untuk menghitung setiap record yang dimiliki oleh '16'
mengiris. Catatan milik irisan lain diberi nilai 0
.