oracle 순번 매기기 질문 0 4 5,525

by GOODmain [Oracle 기초] [2024.06.18 16:37:03]


 

안녕하세요 

순번 매기기 질문 드립니다.

아래와같이 코드는 같고 명칭만 바뀔때  '순번' 란 처럼 나타나게 가능 할까요?

선배님들 부탁 드립니다.

CODE CODE_NM 순번
A AAA 1
A AAA 1
A BBBB 2
A BBBB 2
A AAA 3
A AAA 3
B CCC 1
B CCC 1
B DDD 2
B DDD 2
B CCC 3
B CCC 3
by 마농 [2024.06.18 16:54:16]

예시자료의 현재 출력 순서를 보장 할 수 있는 항목이 필요합니다.
해당 항목이 추가된 예시자료가 있어야 합니다.
순번이라던가? 등록일시 라던가? 하는 정렬 기준 항목.


by Hinori_ [2024.06.18 17:07:21]

DENSE_RANK() OVER(PARTITION BY XXX ORDER BY ZZZ) AS 순번


by 마농 [2024.06.18 17:52:48]
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
        )
;

 


by GOODmain [2024.06.19 08:55:20]

대단히 감사합니다.

잘활용하도록 하겠습니다~

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입