Вы можете использовать DENSE_RANK()
, чтобы ответить на ваш вопрос. Что еще более важно, вы можете научиться использовать правильный, явный, стандартный JOIN
синтаксис.
SELECT pd.PERSON_ID, pd.DETAIL_ID
FROM (SELECT HDR.PERSON_ID, DTL.DETAIL_ID,
DENSE_RANK() OVER (ORDER BY HDR.PERSON_ID) as ranking
FROM HEADER HDR JOIN
DETAIL DTL
ON HDR.HEADER_ID = DTL.HEADER_ID AND DTL.CODE = 'SUCCESS'
) pd
WHERE ranking <= 5;