First create a PLANNING table in oracle using following script.
CREATE TABLE PLANNING (CITY VARCHAR2(25), TYPEOFCITY VARCHAR2(20),
CONSUMERS NUMBER(20), SURVEYEDCONSUMERS NUMBER(20));Now insert some dummy records in the table.
insert into PLANNING values ('AJMER','URBAN',85589,45836); insert into PLANNING values ('AJMER','RURAL',13853,8328); insert into PLANNING values ('BHILWARA','URBAN',54149,27327); insert into PLANNING values ('BHILWARA','RURAL',8384,4331); insert into PLANNING values ('NAGOR','URBAN',49752,43919); insert into PLANNING values ('NAGOR','RURAL',8711,3645); insert into PLANNING values ('SIKAR','URBAN',49802,45283); insert into PLANNING values ('SIKAR','RURAL',8860,3107); commit;
Check the records in PLANNING table before creating PIVOT table in Oracle.
select * from planning;
Ruin the following script to create PIVOT table.
select row_number() over (order by CITY) as SEQ_ID,CITY
,sum("URBAN_CONSUMERS") as "URBAN_CONSUMERS"
,sum("RURAL_CONSUMERS") as "RURAL_CONSUMERS"
,sum("URBAN_SURVEYEDCONSUMERS") as "URBAN_SURVEYED_CON"
, sum("RURAL_SURVEYEDCONSUMERS") as "RURAL_SURVEYED_CON",
sum("URBAN_CONSUMERS") - sum("URBAN_SURVEYEDCONSUMERS") as "PEN_URBAN_SUR_CON",
sum("RURAL_CONSUMERS") - sum("RURAL_SURVEYEDCONSUMERS") as "PEN_RURAL_SUR_CON"
from
(SELECT CITY,
CASE WHEN TYPEOFCITY = 'URBAN' then CONSUMERS else 0 end as "URBAN_CONSUMERS",
CASE WHEN TYPEOFCITY = 'RURAL' then CONSUMERS else 0 END as "RURAL_CONSUMERS",
CASE when TYPEOFCITY = 'URBAN' then SURVEYEDCONSUMERS else 0 end as "URBAN_SURVEYEDCONSUMERS",
CASE WHEN TYPEOFCITY = 'RURAL' then SURVEYEDCONSUMERS else 0 end as "RURAL_SURVEYEDCONSUMERS"
from PLANNING) group by CITY;Don’t forget to drop planning table after using the above code.
DROP TABLE PLANNING;
There are many options to create a PIVOT table in Oracle.
You Must Read:
Transpose Rows to Columns/Columns to Rows in Oracle
If you have any query/suggestion, feel free to comment below the post.

nice it’s help full for my class
Thanks it helped me…