求助:现在需要在oracle中先按照单位分组,然后将单位的各个数值信息进行相加统计,汇总成一行,请大神帮助,谢谢!!!

求助:现在需要在oracle中先按照单位分组,然后将单位的各个数值信息进行相加统计,汇总成一行,请大神帮助,谢谢!!!

问题描述:

数据库:ORACLE 11G

这是我根据工作环境创建的简化的表,实际单位有上百个,需要一个比较通用的方法。
原始数据表结构如下:

图片说明

需要达到的效果如下图:图片说明

也就是先根据单位分类,然后将后面四个属性中的数值进行合并相加。

如果达不到这样的效果也可以在每类单位下面加一行合计。

测试表建表代码如下:

-- Create table
create table TONGJI002
(
  id     NUMBER,
  danwei VARCHAR2(100),
  yilei  NUMBER,
  erlei  NUMBER,
  sanlei NUMBER,
  silei  NUMBER
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64
    next 1
    minextents 1
    maxextents unlimited
  );
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (1, '第一中学', 2, 2, 5, 6);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (2, '第一中学', 1, null, 4, null);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (3, '第一中学', null, 3, null, 9);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (4, '第二中学', null, null, 7, 8);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (5, '第二中学', null, 5, null, null);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (6, '第三中学', 3, 3, 4, 8);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (7, '第三中学', 1, null, 5, null);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (8, '第三中学', 1, 6, null, 9);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (9, '第三中学', null, null, 8, 8);

急需大神帮助,跪谢!!!

select danwei,sum(yilei),sum(erlei),sum(sanlei),sum(silei) from tongji002 group by danwei;