PIVOT Query
Above 11g
with testdata as
(
select 'Fred' First_Name, 10 Items from dual
union
select 'John' First_Name, 5 Items from dual
union
select 'Jane' First_Name, 12 Items from dual
union
select 'Fred' First_Name, 15 Items from dual
)
select FRED_ITMSUM "Fred's Sum", FRED_ITMCNT "Fred's Count"
, JOHN_ITMSUM "John's Sum", JOHN_ITMCNT "John's Count"
, JANE_ITMSUM "Janes's Sum", JANE_ITMCNT "Janes's Count"
from testdata
pivot (
sum(Items) itmsum,
count(Items) itmcnt
for First_Name
in ('Fred' as fred,'John' as john,'Jane' as jane)
)
WITH T AS(
SELECT '홍길동' 성명, 140 일월, 120 이월 FROM DUAL UNION ALL
SELECT '김철수' 성명, 210 일월, 220 이월 FROM DUAL
)
SELECT * FROM T
UNPIVOT(급여 FOR 월 IN(일월, 이월))
WITH T AS(
SELECT '1월' 월, '홍길동' 성명, 110 급여 FROM DUAL UNION ALL
SELECT '1월' 월, '홍길동' 성명, 30 급여 FROM DUAL UNION ALL
SELECT '1월' 월, '이상현' 성명, 210 급여 FROM DUAL UNION ALL
SELECT '1월' 월, '김성현' 성명, 200 급여 FROM DUAL UNION ALL
SELECT '2월' 월, '김성현' 성명, 120 급여 FROM DUAL UNION ALL
SELECT '2월' 월, '이상현' 성명, 220 급여 FROM DUAL
)
SELECT *
FROM T
PIVOT ( SUM(급여) FOR 월 IN ('1월','2월'))
WITH T AS
(
SELECT CHR(LEVEL + 64) C
, LEVEL V
FROM DUAL
connect by LEVEL <= 10
)
SELECT *
FROM (
SELECT C
, TO_CHAR(V) V
FROM T
)
UNPIVOT ( V FOR GB2 IN (C AS 1, V AS 2)
WITH T AS
(
SELECT CHR(LEVEL + 64) C
, LEVEL V
FROM DUAL
CONNECT BY LEVEL <= 10
)
SELECT *
FROM (
SELECT C
, V
FROM T
)
PIVOT ( MIN(C) FOR V IN(1 V1, 2 V2, 3 V3, 4 V4, 5 V5, 6 V6, 7 V7, 8 V8, 9 V9, 10 V10))