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

by 쿼리back [SQL Query] [2014.07.18 14:59:50]


안녕하세요. 항상 눈팅으로 많은 도움 받고 잇는데요....

아래와 같은 쿼리를 짰는데,

결과가

 

1 2
aaa  
bbb  
ccc  
  aaa
  ddd
  fff

이렇게 나오는데,

1 2
aaa aaa
bbb ddd
ccc fff

 

이렇게 나오게 하려면 어떻게 해야 하나요??

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
)
select decode(kind,1,name,'') 1,decode(kind,2,name,'') 2
from t

by 김치찌게 [2014.07.18 15:51:53]
-- 정렬 조건??  if name ?
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
/

 


by 필상 [2014.07.18 15:57:23]

select max(c1) as c1, max(c2) as c2
  from ( select decode(kind,1,name,'') as c1 ,decode(kind,2,name,'') as c2,
                row_number() over(partition by kind order by name) as rn
         from t ) a
 group by rn


by 쿼리back [2014.07.18 16:05:48]

김치찌개, 필상 님 답변 정말 감사합니다. ^^


by 우리집아찌 [2014.07.18 17:01:57]

NTILE() OVER() 쓰셔야할듯

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