IT技术及科技前沿

中文IT博客,为IT专业技术人员提供最全面的信息传播和服务

首页 新随笔 订阅 管理

统计某个班男女生人数_sql练习题:

1 有如下表格和数据:
 2     ID          Name       Class      Sex
 3     ----------- ---------- ---------- ----
 4     1           张1         一班         男
 5     2           张2         一班         男
 6     3           张3         二班         女
 7     4           张4         一班         男
 8     5           张5         二班         女
 9     6           张6         二班         女
10     7           张7         二班         男
11     8           张8         一班         女
12 现要求通过SELECT语句查询出如下结果:
13 
14     班级         男           女
15     ---------- ----------- -----------
16     二班         1           3
17     一班         3           1
18 
19 
20 use studb
21 go
22 create table TestTable
23 (
24     ID int identity(1,1primary key,
25     [Name] varchar(10),
26     [Class] varchar(10),
27     Sex char(2)
28 )
29 
30 insert TestTable values('张1','一班','')
31 insert TestTable values('张2','一班','')
32 insert TestTable values('张3','二班','')
33 insert TestTable values('张4','一班','')
34 insert TestTable values('张5','二班','')
35 insert TestTable values('张6','二班','')
36 insert TestTable values('张7','二班','')
37 insert TestTable values('张8','一班','')
38 
39 select * from TestTable
40 
41 --答案1:
42 select class 班级, count(case when Sex='' then 1 endas 男,
43 count(case when Sex='' then 1 endas 女 
44 from TestTable group by class
45 --答案2:
46 SELECT 班级, SUM(男) AS 男, SUM(女) AS 女 FROM (
47 SELECT Class AS 班级, COUNT(Sex) AS 男, 0 AS 女 FROM TestTable
48 WHERE Sex=''
49 GROUP BY Class
50 UNION
51 SELECT Class AS 班级, 0 AS 男, COUNT(Sex) AS 女 FROM TestTable
52 WHERE Sex=''
53 GROUP BY Class
54 ) A
55 GROUP BY

posted on 2010-12-25 22:35  孟和2012  阅读(421)  评论(0编辑  收藏  举报