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 |
주어진 예시만으로는 그룹기준과 정렬기준이 모호합니다.
기준을 명확하게 판단하시고 적용하시길 바랍니다.
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
;
마농님 너무 감사드립니다. 날씨가 많이 쌀쌀해졌는데 감기 조심하시고 늘 건강하세요.
너무 감사합니다.