日期:2014-05-18  浏览次数:20367 次

求一分组汇总语句
有如下记录:

classroom       student   sex
一班     张三  男
二班     李四  男
一班     王五  女
一班     老六  男

分别统计出 男女数
显示:
班级 男生数 女生数
一班  3   1
二班  1   0

sql语句如何写呢?

------解决方案--------------------
楼主答案好像有点问题
--------------------------------------------
create table tb(classroom varchar(10),student varchar(10),sex varchar(10))
insert into tb select '一班 ', '张三 ', '男 '
union all select '二班 ', '李四 ', '男 '
union all select '一班 ', '王五 ', '女 '
union all select '一班 ', '老六 ', '男 '
go

select
班级=classroom,
男生数=sum(case sex when '男 ' then 1 else 0 end),
女生数=sum(case sex when '女 ' then 1 else 0 end)
from
tb
group by classroom
order by classroom collate Chinese_PRC_Stroke_CI_AS


drop table tb
------解决方案--------------------
Select
Classroom As 班级,
Sum(Case Sex When '男 ' Then 1 Else 0 End) As 男生数,
Sum(Case Sex When '女 ' Then 1 Else 0 End) As 女生数
From 表
Group BY Classroom
Order BY Classroom Collate Chinese_PRC_Stroke_CI_AS