안녕하세요. 항상 눈팅으로 많은 도움 받고 잇는데요....
아래와 같은 쿼리를 짰는데,
결과가
| 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
-- 정렬 조건?? 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
/
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
김치찌개, 필상 님 답변 정말 감사합니다. ^^
NTILE() OVER() 쓰셔야할듯