[PL\SQL] How to Join on top (First) row
SELECT *
FROM (SELECT ROWNUM t FROM DUAL CONNECT BY LEVEL < 6)
JOIN (SELECT v, ROW_NUMBER() OVER(PARTITION BY v ORDER BY 1) rwnm
FROM (SELECT 1 v
FROM DUAL
UNION ALL
SELECT 1 FROM DUAL
UNION ALL
SELECT 2 FROM DUAL)) ON t = v
AND rwnm = 1;

key value
ROW_NUMBER() OVER(PARTITION BY generatorcode ORDER BY 1) rwnm
…
AND rwnm = 1;