--윈도우 함수 RANK() OVER()가 포인트입니다. WITH T AS ( SELECT 'A' AS a FROM DUAL UNION ALL SELECT 'A' FROM DUAL UNION ALL SELECT 'A' FROM DUAL UNION ALL SELECT 'A' FROM DUAL UNION ALL SELECT 'B' FROM DUAL UNION ALL SELECT 'B' FROM DUAL UNION ALL SELECT 'A' FROM DUAL UNION ALL SELECT 'A' FROM DUAL ) SELECT a, RANK() OVER(PARTITION BY a ORDER BY ROWNUM) AS b FROM T