sql查询统计信息(行转列)

----创建数据信息表

create table badinfo(
  ids int not null,
  objectid int,
  xianqu varchar(50),
  badtype varchar(50),
  constraint badinfoids primary key (ids)
);

----数据信息表插入数据
insert into badinfo(ids,objectid,xianqu,badtype)values(1,1,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(2,2,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(3,3,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(4,4,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(5,5,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(6,6,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(7,7,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(8,8,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(9,9,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(10,10,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(11,11,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(12,12,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(13,13,'房山区','不稳定斜坡');
insert into badinfo(ids,objectid,xianqu,badtype)values(14,14,'房山区','不稳定斜坡');
insert into badinfo(ids,objectid,xianqu,badtype)values(15,15,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(16,16,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(17,17,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(18,18,'房山区','地面塌陷');
insert into badinfo(ids,objectid,xianqu,badtype)values(19,19,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(20,20,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(21,21,'房山区','不稳定斜坡');
insert into badinfo(ids,objectid,xianqu,badtype)values(22,22,'门头沟区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(23,23,'门头沟区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(24,24,'门头沟区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(25,25,'门头沟区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(26,26,'门头沟区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(27,27,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(28,28,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(29,29,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(30,30,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(31,31,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(32,32,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(33,33,'昌平区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(34,34,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(35,35,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(36,36,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(37,37,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(38,38,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(39,39,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(40,40,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(41,41,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(42,42,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(43,43,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(44,44,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(45,45,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(46,46,'昌平区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(47,47,'昌平区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(48,48,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(49,49,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(50,50,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(51,51,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(52,52,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(53,53,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(54,54,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(55,55,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(56,56,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(57,57,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(58,58,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(59,59,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(60,60,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(61,61,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(62,62,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(63,63,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(64,64,'昌平区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(65,65,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(66,66,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(67,67,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(68,68,'昌平区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(69,69,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(70,70,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(71,71,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(72,72,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(73,73,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(74,74,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(75,75,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(76,76,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(77,77,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(78,78,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(79,79,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(80,80,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(81,81,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(82,82,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(83,83,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(84,84,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(85,85,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(86,86,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(87,87,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(88,88,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(89,89,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(90,90,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(91,91,'昌平区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(92,92,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(93,93,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(94,94,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(95,95,'房山区','不稳定斜坡');
insert into badinfo(ids,objectid,xianqu,badtype)values(96,96,'房山区','不稳定斜坡');
insert into badinfo(ids,objectid,xianqu,badtype)values(97,97,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(98,98,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(99,99,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(100,100,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(101,101,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(102,102,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(103,103,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(104,104,'房山区','不稳定斜坡');
insert into badinfo(ids,objectid,xianqu,badtype)values(105,105,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(106,106,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(107,107,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(108,108,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(109,109,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(110,110,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(111,111,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(112,112,'房山区','地面塌陷');
insert into badinfo(ids,objectid,xianqu,badtype)values(113,113,'房山区','地面塌陷');
insert into badinfo(ids,objectid,xianqu,badtype)values(114,114,'房山区','不稳定斜坡');
insert into badinfo(ids,objectid,xianqu,badtype)values(115,115,'房山区','地面塌陷');
insert into badinfo(ids,objectid,xianqu,badtype)values(116,116,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(117,117,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(118,118,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(119,119,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(120,120,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(121,121,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(122,122,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(123,123,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(124,124,'房山区','地面塌陷');
insert into badinfo(ids,objectid,xianqu,badtype)values(125,125,'房山区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(126,126,'丰台区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(127,127,'丰台区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(128,128,'丰台区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(129,129,'丰台区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(130,130,'丰台区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(131,131,'丰台区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(132,132,'门头沟区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(133,133,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(134,134,'昌平区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(135,135,'房山区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(136,136,'丰台区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(137,137,'丰台区','崩塌');
insert into badinfo(ids,objectid,xianqu,badtype)values(138,138,'门头沟区','泥石流');
insert into badinfo(ids,objectid,xianqu,badtype)values(139,139,'房山区','崩塌');

commit;

-- 数据查询

select * from badinfo;

--创建数据中间统计表视图(V_+XX+_Count+_View)

create or replace view  v_badinfo
       as
select bad1.xianqu as xianqu, bad2.badtype as badtype, count(bad1.badtype) sumnum
  from badinfo bad1
 inner join (select badtype from badinfo group by badtype) bad2
    on bad1.badtype = bad2.badtype
 group by bad1.xianqu, bad2.badtype;

--查询数据中间表视图

 select * from v_badinfo;
 
--组织动态sql创建成报表存储过程(P_+XX_+HZL_Storage)(V_XX_HZL_View)

  CREATE OR REPLACE PROCEDURE P_badinfo IS
  V_SQL VARCHAR2(2000);
  CURSOR CURSOR_1 IS SELECT DISTINCT T.badtype FROM v_badinfo T ORDER BY T.badtype;  
    BEGIN
      V_SQL := 'SELECT xianqu';
      FOR V_BAD IN CURSOR_1
      LOOP
        V_SQL := V_SQL || ',' || 'SUM(DECODE(badtype,''' || V_BAD.badtype || ''',sumnum,null)) AS ' || V_BAD.badtype ;
      END LOOP;    
      V_SQL :=  V_SQL ||  ' , sum(sumnum) 合计  FROM v_badinfo GROUP BY xianqu ORDER BY xianqu';
      V_SQL := 'CREATE OR REPLACE VIEW V_BADINFO1  AS '||  V_SQL;
      EXECUTE IMMEDIATE V_SQL;
    END;
   
--执行存储过程生成视图

  BEGIN
    P_badinfo;              
  END;

--查询视图

select *from V_BADINFO1


--创建视图 (V_XX_SUM_COUNT_View)

create or replace view  v_badinfo_column
       as
select badtype as columnName,sum(sumnum) as ColumnNum from  v_badinfo group by badtype order by badtype;

--查询视图

select * from v_badinfo_column;
 
select null as 合计,sum(columnNum) from v_badinfo_column;

--组织动态sql创建成报表存储过程(V_XX_SUM_COUNT_HZL_Storage) (V_XX_SUM_COUNT_HZL_View)

 CREATE OR REPLACE PROCEDURE P_badinfo_column IS
  V_SQL VARCHAR2(2000);
  CURSOR CURSOR_1 IS SELECT DISTINCT T.columnName FROM v_badinfo_column T ORDER BY T.columnName;  
    BEGIN
      V_SQL := 'SELECT null as 合计';
      FOR V_BAD IN CURSOR_1
      LOOP
        V_SQL := V_SQL || ',' || ' SUM(DECODE(columnName,''' || V_BAD.columnName || ''',columnNum,null)) AS ' || V_BAD.columnName ;
      END LOOP;    
      V_SQL :=  V_SQL ||  ' , sum(columnNum) 合计S  FROM v_badinfo_column GROUP BY null ORDER BY null';
      V_SQL := 'CREATE OR REPLACE VIEW V_BADINFO2  AS '||  V_SQL;
      EXECUTE IMMEDIATE V_SQL;
    END;

--执行存储过程生成视图

 BEGIN
    P_badinfo_column;              
  END;

--执行存储过程生成视图(V_XX_Result_View)
create or replace view  v_zrzhd_Char
       as
select * from V_BADINFO1
 union
select * from V_BADINFO2;

select * from v_zrzhd_Char;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值