当前位置: 代码迷 >> Sql Server >> 关于组合统计的有关问题()
  详细解决方案

关于组合统计的有关问题()

热度:28   发布时间:2016-04-27 16:57:41.0
关于组合统计的问题(高手进)
本人想做一个组合统计,谁可以告诉我怎么实现

表如下形式:

id         sex         school         government       area    
-----------------------------------------
***         男           中学                 团员             北京
***         男           大学                 党员             上海
***         女           小学                 群众             北京
***         女           中学                 群众             天津
***         男           小学                 党员             上海
***         女           大学                 团员             北京
-------------------------------------------

现在想统计出一个列表,列表横轴和纵轴   分别可由以上4个字段中的一个或几个组合而成。

列表形式如下:

比如     由性别和学历组成的:

                                        性别
                      --------       -----------
                            男                   女

            小学         0                       1
 
            中学         2                       3
 
            大学         1                       2           (图中数字代表交叉统计的结果数)    


请高手帮帮忙。。。


------解决方案--------------------
--借用libin_ftsafe(子陌红尘:当libin告别ftsafe) 数据一用

create table t(id varchar(6),sex varchar(6),school varchar(6),government varchar(6),area varchar(6))
insert into t select '*** ', '男 ', '中学 ', '团员 ', '北京 '
insert into t select '*** ', '男 ', '大学 ', '党员 ', '上海 '
insert into t select '*** ', '女 ', '小学 ', '群众 ', '北京 '
insert into t select '*** ', '女 ', '中学 ', '群众 ', '天津 '
insert into t select '*** ', '男 ', '小学 ', '党员 ', '上海 '
insert into t select '*** ', '女 ', '大学 ', '团员 ', '北京 '
go


1:
select
school,
团员=sum(case when government= '团员 ' then 1 else 0 end),
党员=sum(case when government= '党员 ' then 1 else 0 end),
群众=sum(case when government= '群众 ' then 1 else 0 end)
from t
group by school
2:
  相关解决方案