-- 저는 아주 잘 나옵니다. 잘못 적용하신 듯... -- WITH t AS ( SELECT '1101130101' c1, '10483' c2 FROM dual UNION ALL SELECT '1101130103', '10485' FROM dual UNION ALL SELECT '1101130105', '10481' FROM dual UNION ALL SELECT '8000000001', '10483' FROM dual UNION ALL SELECT '8000000002', '10485' FROM dual UNION ALL SELECT '8000000003', '10481' FROM dual ) SELECT * FROM t ORDER BY MIN(c1) OVER(PARTITION BY c2), c1 ;