안녕하세요. 이렇게 처리할 방법이 있나 해서 질문 드려봅니다.
예를들어 SELECT 결과값이
아파트1 | 60 | 30000 |
아파트1 | 60 | 35000 |
아파트1 | 70 | 40000 |
아파트1 | 80 | 45000 |
아파트2 | 100 | 50000 |
아파트2 | 120 | 50000 |
아파트3 | 100 | 50000 |
아파트4 | 100 | 50000 |
위 표와 같습니다.
아래 결과처럼 처리를 하고싶은데 고수분들 답변 부탁드리겠습니다.
대략 설명을 하자면 아파트명, 면적 순서로 정렬이 되어있는 상태이구요.
아파트명이 동일할 경우 다음 값은 NULL값이 표시되고
면적도 마찬가지로 동일한 아파트명에 한하여 면적이 동일할경우 다음 값음 NULL로 표시되게할 방법이 있을까요?
도움주시는분들 항상 감사드립니다.
with t (col1,col2,col3) as ( select '아파트1', 60, 30000 from dual union all select '아파트1', 60, 35000 from dual union all select '아파트1', 70, 40000 from dual union all select '아파트1', 80, 45000 from dual union all select '아파트2', 100, 50000 from dual union all select '아파트2', 120, 50000 from dual union all select '아파트3', 100, 50000 from dual union all select '아파트4', 100, 50000 from dual) select decode(rn1,1,col1) col1 , decode(rn2,1,col2) col2 , col3 from ( select col1,col2,col3 , row_number() over(partition by col1 order by col2,col3) rn1 , row_number() over(partition by col1,col2 order by col3) rn2 from t) ;