SQL练习1:统计班级男⼥⽣⼈数1有如下表格和数据:
2    ID          Name      Class      Sex
3----------- ---------- ---------- ----
41张1        ⼀班男
52张2        ⼀班男
63张3        ⼆班⼥
74张4        ⼀班男
85张5        ⼆班⼥
96张6        ⼆班⼥
107张7        ⼆班男
118张8        ⼀班⼥
12现要求通过SELECT语句查询出如下结果:
13
14班级男⼥
15---------- ----------- -----------
16⼆班13
17⼀班31
18
19
20use studb
21go
22create table TestTable
23 (
24    ID int identity(1,1) primary key,
sql统计每个系的学生人数25[Name]varchar(10),
26[Class]varchar(10),
27    Sex char(2)
28 )
29
30insert TestTable values('张1','⼀班','男')
31insert TestTable values('张2','⼀班','男')
32insert TestTable values('张3','⼆班','⼥')
33insert TestTable values('张4','⼀班','男')
34insert TestTable values('张5','⼆班','⼥')
35insert TestTable values('张6','⼆班','⼥')
36insert TestTable values('张7','⼆班','男')
37insert TestTable values('张8','⼀班','⼥')
38
39select*from TestTable
40
41--答案1:
42select class 班级, count(case when Sex='男'then1end) as男,
43count(case when Sex='⼥'then1end) as⼥
44from TestTable group by class
45--答案2:
46SELECT班级, SUM(男) AS男, SUM(⼥) AS⼥FROM (
47SELECT Class AS班级, COUNT(Sex) AS男, 0AS⼥FROM TestTable
48WHERE Sex='男'
49GROUP BY Class
50UNION
51SELECT Class AS班级, 0AS男, COUNT(Sex) AS⼥FROM TestTable
52WHERE Sex='⼥'
53GROUP BY Class
54 ) A
55GROUP BY 班级