Hello,
I have 5 columns that I need to pivot/unpivot into 5 rows, if it's possible. Here's a test data:
with val as (
select 'Woman' gender, '2000' year, 100 ins_prim, 101 ins_sec, 102 ins_resp, 103 fact_prim, 104 fact_sec from dual
union
select 'Woman' gender, '2001' year, 200 ins_prim, 201 ins_sec, 202 ins_resp, 203 fact_prim, 204 fact_sec from dual
union
select 'Woman' gender, '2002' year, 300 ins_prim, 301 ins_sec, 302 ins_resp, 303 fact_prim, 304 fact_sec from dual
union
select 'Man' gender, '2000' year, 400 ins_prim, 401 ins_sec, 402 ins_resp, 403 fact_prim, 404 fact_sec from dual
union
select 'Man' gender, '2001' year, 500 ins_prim, 501 ins_sec, 502 ins_resp, 503 fact_prim, 504 fact_sec from dual
)
select * from val;
I need to transform from:
GENDER YEAR INS_PRIM INS_SEC INS_RESP FACT_PRIM FACT_SEC
-------------- ---------- ---------------- --------------- ----------------- ----------------- -------------------
Man 2000 400 401 402 403 404
Man 2001 500 501 502 503 504
Woman 2000 100 101 102 103 104
Woman 2001 200 201 202 203 204
Woman 2002 300 301 302 303 304
To:
GENDER INSURANCE 2000 2001 2002
------------- ------------------ ------- ------- -------
Man ins_prim 400 500 null
Man ins_sec 401 501 null
Woman ins_prim 100 200 300
Woman ins_sec 101 201 301
Woman ins_resp 102 202 302
Woman fact_prim 103 203 303
Woman fact_sec 104 204 304
Thank you !