안녕하세요. 죄송한데 잘 몰라서 질문드립니다.
같은 넘버일때 (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 |
주어진 예시만으로는 그룹기준과 정렬기준이 모호합니다.
기준을 명확하게 판단하시고 적용하시길 바랍니다.
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 ;