반응형
종합 선물 세트다. with, union all, decode, row_number(), over(partition by) 가 나온다.
with kk as (
select '강군' as aa,'배고플때' as bb, '바나나' as cc from dual
union all
select '강군','배고플때','멍멍이' from dual
union all
select '강군','배부를때','고래' from dual
union all
select '강군','배부를때','참치' from dual
union all
select '강군','정신없을때','해삼' from dual
union all
select '강군','배부를때','바나나' from dual
union all
select '케이씨','정신없을때','해삼' from dual
union all
select '케이씨','정신없을때','고래' from dual
union all
select '케이씨','미쳤을때','고래' from dual
)
select aa
, bb
, max(decode(cnt,1,cc))
, max(decode(cnt,2,cc))
, max(decode(cnt,3,cc))
from (
select kk.*
, row_number() over(partition by aa,bb order by aa) cnt
from kk
)
group by aa,bb;
select '강군' as aa,'배고플때' as bb, '바나나' as cc from dual
union all
select '강군','배고플때','멍멍이' from dual
union all
select '강군','배부를때','고래' from dual
union all
select '강군','배부를때','참치' from dual
union all
select '강군','정신없을때','해삼' from dual
union all
select '강군','배부를때','바나나' from dual
union all
select '케이씨','정신없을때','해삼' from dual
union all
select '케이씨','정신없을때','고래' from dual
union all
select '케이씨','미쳤을때','고래' from dual
)
select aa
, bb
, max(decode(cnt,1,cc))
, max(decode(cnt,2,cc))
, max(decode(cnt,3,cc))
from (
select kk.*
, row_number() over(partition by aa,bb order by aa) cnt
from kk
)
group by aa,bb;
결과는 요래 나옴
강군 배고플때 바나나 멍멍이
강군 배부를때 고래 참치 바나나
강군 정신없을때 해삼
케이씨 미쳤을때 고래
케이씨 정신없을때 해삼 고래
강군 배부를때 고래 참치 바나나
강군 정신없을때 해삼
케이씨 미쳤을때 고래
케이씨 정신없을때 해삼 고래
참고로 그냥 조회를 하면 이런 결과가 나오신다.
강군 배고플때 바나나
강군 배고플때 멍멍이
강군 배부를때 고래
강군 배부를때 참치
강군 배부를때 바나나
강군 정신없을때 해삼
케이씨 미쳤을때 고래
케이씨 정신없을때 해삼
케이씨 정신없을때 고래
강군 배고플때 멍멍이
강군 배부를때 고래
강군 배부를때 참치
강군 배부를때 바나나
강군 정신없을때 해삼
케이씨 미쳤을때 고래
케이씨 정신없을때 해삼
케이씨 정신없을때 고래
.... 스크랩 풀어 놓을까 ..ㅡㅡ 타자 치려면 힘들 것다..
반응형
댓글