WITH t AS ( SELECT '가' a, 1 b FROM dual UNION ALL SELECT '가', 2 FROM dual UNION ALL SELECT '가', 3 FROM dual UNION ALL SELECT '나', 4 FROM dual UNION ALL SELECT '나', 5 FROM dual UNION ALL SELECT '다', 6 FROM dual UNION ALL SELECT '다', 7 FROM dual UNION ALL SELECT '라', 8 FROM dual UNION ALL SELECT '라', 9 FROM dual ) SELECT a , MIN(b) KEEP(DENSE_RANK FIRST ORDER BY dbms_random.value) b FROM t GROUP BY a ;