쿼리 질문좀 드립니다. 0 1 1,748

by 쿼리back [2014.07.22 11:26:37]


안녕하세요. 항상 많은 도움 받고 있습니다.  쿼리를짜다가 궁금한게 있어서요...

 

            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  

위 와같이 컬럼을 하나 추가하여 나오게 하려면 어떻게 해야 하나요??? 

by 아발란체 [2014.07.22 11:35:15]

결과 항목 수가 동적이라면 쉬운 문제는 아닌 것 같아용.

유사 질답 : http://www.gurubee.net/article/63012

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