같은 넘버일때 첫번째 항목과 마지막 항목을 다르게 표기하고 싶습니다. 0 2 1,107

by 마르스헤븐 [2022.10.06 16:54:19]


안녕하세요. 죄송한데 잘 몰라서 질문드립니다.

같은 넘버일때 (doc) 첫번째 항목과 마지막 항목을 다르게 표기하고 싶은에 어떻게 해야 할지 모르겠습니다.

이 테이블에서 

no regdate tilte seq doc sfx
54952 2022-09-30 test1 1 22002930 2
54952 2022-09-30 test1 2 22002930 2
54952 2022-09-30 test1 3 22002930 1
54952 2022-09-30 test1 3 22002930 1
54952 2022-09-30 test1 3 22002930 2
54952 2022-09-30 test1 3 22002930 2
54952 2022-09-30 test1 1 22002931 1
54952 2022-09-30 test1 2 22002931 1
54952 2022-09-30 test1 3 22002931 1
54952 2022-09-30 test1 3 22002931 1
54952 2022-09-30 test2 1 22003016 2
54952 2022-09-30 test2 3 22003016 1
54952 2022-09-30 test2 3 22003016 2
54952 2022-09-30 test3 1 22003017 1
54952 2022-09-30 test3 3 22003017 1
54952 2022-09-30 test3 1 22003018 1
54952 2022-09-30 test3 3 22003018 1
54952 2022-09-30 test4 1 22003019 14
54952 2022-09-30 test4 3 22003019 1
54952 2022-09-30 test4 3 22003019 2
54952 2022-09-30 test4 3 22003019 3
54952 2022-09-30 test4 3 22003019 4
54952 2022-09-30 test4 3 22003019 5
54952 2022-09-30 test4 3 22003019 6
54952 2022-09-30 test4 3 22003019 7
54952 2022-09-30 test4 3 22003019 8
54952 2022-09-30 test4 3 22003019 9
54952 2022-09-30 test4 3 22003019 10
54952 2022-09-30 test4 3 22003019 11
54952 2022-09-30 test4 3 22003019 12
54952 2022-09-30 test4 3 22003019 13
54952 2022-09-30 test4 3 22003019 14

doc가 같을경우에 seq의 첫번째와 마지막 항목을 다르게 표기하고 싶습니다.

디비는 Oracle Database 12c Release 12.1.0.1.0 - 64bit Production과  PostgreSQL 10.7를 사용하고 있습니다. 

감사합니다. 

 

no regdate tilte seq doc sfx check(doc를 기준)
54952 2022-09-30 test1 1 22002930 2 t
54952 2022-09-30 test1 2 22002930 2  
54952 2022-09-30 test1 3 22002930 1  
54952 2022-09-30 test1 3 22002930 1  
54952 2022-09-30 test1 3 22002930 2  
54952 2022-09-30 test1 3 22002930 2 f
54952 2022-09-30 test1 1 22002931 1 t
54952 2022-09-30 test1 2 22002931 1  
54952 2022-09-30 test1 3 22002931 1  
54952 2022-09-30 test1 3 22002931 1 f
54952 2022-09-30 test2 1 22003016 2 t
54952 2022-09-30 test2 3 22003016 1  
54952 2022-09-30 test2 3 22003016 2 f
54952 2022-09-30 test3 1 22003017 1 t
54952 2022-09-30 test3 3 22003017 1 f
54952 2022-09-30 test3 1 22003018 1 t
54952 2022-09-30 test3 3 22003018 1 f
54952 2022-09-30 test4 1 22003019 14 t
54952 2022-09-30 test4 3 22003019 1  
54952 2022-09-30 test4 3 22003019 2  
54952 2022-09-30 test4 3 22003019 3  
54952 2022-09-30 test4 3 22003019 4  
54952 2022-09-30 test4 3 22003019 5  
54952 2022-09-30 test4 3 22003019 6  
54952 2022-09-30 test4 3 22003019 7  
54952 2022-09-30 test4 3 22003019 8  
54952 2022-09-30 test4 3 22003019 9  
54952 2022-09-30 test4 3 22003019 10  
54952 2022-09-30 test4 3 22003019 11  
54952 2022-09-30 test4 3 22003019 12  
54952 2022-09-30 test4 3 22003019 13  
54952 2022-09-30 test4 3 22003019 14 f

 

 

 

 

 

by 마농 [2022.10.06 17:47:24]

주어진 예시만으로는 그룹기준과 정렬기준이 모호합니다.
기준을 명확하게 판단하시고 적용하시길 바랍니다.
 

SELECT no, regdate, title, seq, doc, sfx
     , CASE 1
       WHEN ROW_NUMBER() OVER(PARTITION BY no, regdate, title, doc ORDER BY seq     , sfx     ) THEN 't'
       WHEN ROW_NUMBER() OVER(PARTITION BY no, regdate, title, doc ORDER BY seq DESC, sfx DESC) THEN 'f'
        END chk
  FROM t
 ORDER BY no, regdate, title, doc, seq, sfx
;

 


by 마르스헤븐 [2022.10.07 09:05:47]

마농님 너무 감사드립니다. 날씨가 많이 쌀쌀해졌는데 감기 조심하시고 늘 건강하세요. 

너무 감사합니다.

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