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 班级
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论