세로데이타...가로로 나타내기...
with test as
(
select 'B1' as col1, 'A' as col2, 1 as col3 from dual
union all
select 'B1', 'A' , 2 from dual
union all
select 'B1', 'A' , 3 from dual
union all
select 'B1', 'B' , 4 from dual
union all
select 'B1', 'B' , 5 from dual
union all
select 'B1', 'C' , 6 from dual
)
test 라는 테이블 데이타가 아래처럼 들어있습니다...
col1 col2 col3
------------------------------------
B1 A 1
B1 A 2
B1 A 3
B1 B 4
B1 B 5
B1 C 6
위처럼 되어있는 데이타를...아래처럼 나오게 하려고 합니다...
col1 a_col b_col c_col
----------------------------------------------
B1 1 4 6
B1 1 5 6
B1 2 4 6
B1 2 5 6
B1 3 4 6
B1 3 5 6
쿼리는...
select a.col1, a.col3 a_col, b.col3 b_col, c.col3 c_col
from test a, test b, test c
where a.col1=b.col1
and a.col1=c.col1
and a.col2='A' and b.col2='B' and c.col2='C'
order by a.col3, b.col3, c.col3
으로 하면 나옵니다만...
질문은...위 쿼리처럼...셀프조인이 여러번 들어가는데...
col2의 항목갯수만큼 셀프조인이 들어가게 됩니다...
위 예제는 col2가 단지 3개뿐이지만...50개까지도 늘어날수 있는거라...
셀프조인을 50번을 한다면...ㅡㅡ;;
성능상 이슈가 있어서요....
셀프조인 없이...해결할 수 있는방법이나...조은방법이 없을까요...
|