WITH t AS ( -- 정렬용 항목(seq) 추가 SELECT 'A' code, 1 seq, 'AAA' code_nm FROM dual UNION ALL SELECT 'A', 2, 'AAA' FROM dual UNION ALL SELECT 'A', 3, 'BBB' FROM dual UNION ALL SELECT 'A', 4, 'BBB' FROM dual UNION ALL SELECT 'A', 5, 'AAA' FROM dual UNION ALL SELECT 'A', 6, 'AAA' FROM dual UNION ALL SELECT 'B', 1, 'CCC' FROM dual UNION ALL SELECT 'B', 2, 'CCC' FROM dual UNION ALL SELECT 'B', 3, 'DDD' FROM dual UNION ALL SELECT 'B', 4, 'DDD' FROM dual UNION ALL SELECT 'B', 5, 'CCC' FROM dual UNION ALL SELECT 'B', 6, 'CCC' FROM dual ) SELECT code , seq , code_nm , SUM(flag) OVER(PARTITION BY code ORDER BY seq) grp FROM (SELECT code , seq , code_nm , DECODE( LAG(code_nm) OVER(PARTITION BY code ORDER BY seq) , code_nm, 0, 1) flag FROM t ) ;