안녕하세요. 항상 많은 도움 받고 있습니다. 쿼리를짜다가 궁금한게 있어서요...
with t as(
select 'aaa' name , 1 kind
from dual
union all
select 'bbb' name , 1 kind
from dual
union all
select 'ccc' name , 1 kind
from dual
union all
select 'aaa' name , 2 kind
from dual
union all
select 'ddd' name , 2 kind
from dual
union all
select 'fff' name , 2 kind
from dual
union all
select 'fff' name , 2 kind
from dual
)
select min("1"), min("2")
from
(
select decode(kind,1,name,'') as "1",decode(kind,2,name,'') as "2", row_number() over (partition by kind order by 1) rn
from t
)
group by rn
order by rn
위 쿼리를 실행 시키면,
1 | 2 |
ccc | fff |
bbb | ddd |
aaa | fff |
aaa |
결과값이 이렇게 나오는데... row MAX값이 3 이라고 한다면,
1 | 2-1 | 2-2 |
ccc | fff | aaa |
bbb | ddd | |
aaa | fff |
위 와같이 컬럼을 하나 추가하여 나오게 하려면 어떻게 해야 하나요???