SELECT * FROM (SELECT t2.*, LEAD(LEVELS) OVER(ORDER BY RN) aa, CASE WHEN LEAD(LEVELS) OVER(ORDER BY RN) > LEVELS THEN 0 ELSE 1 END LEAF FROM (SELECT ROWNUM rn, t.*, LEVEL LEVELS FROM test t START WITH n_parent_id = 0 CONNECT BY PRIOR n_id = n_parent_id) t2) WHERE leaf = 1