您的位置:首页 > 数据库

SQL练习1:统计班级男女生人数

2011-09-05 15:27 567 查看
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 二班 女
7 张7 二班 男
8 张8 一班 女
现要求通过SELECT语句查询出如下结果:

班级 男 女
---------- ----------- -----------
二班 1 3
一班 3 1

use studb
go
create table TestTable
(
ID int identity(1,1) primary key,
[Name] varchar(10),
[Class] varchar(10),
Sex char(2)
)

insert TestTable values('张1','一班','男')
insert TestTable values('张2','一班','男')
insert TestTable values('张3','二班','女')
insert TestTable values('张4','一班','男')
insert TestTable values('张5','二班','女')
insert TestTable values('张6','二班','女')
insert TestTable values('张7','二班','男')
insert TestTable values('张8','一班','女')

select * from TestTable

--答案1:
select class 班级, count(case when Sex='男' then 1 end) as 男,
count(case when Sex='女' then 1 end) as
from TestTable group by class
--答案2:
SELECT 班级, SUM(男) AS 男, SUM(女) AS 女 FROM (
SELECT Class AS 班级, COUNT(Sex) AS 男, 0 AS 女 FROM TestTable
WHERE Sex='男'
GROUP BY Class
UNION
SELECT Class AS 班级, 0 AS 男, COUNT(Sex) AS 女 FROM TestTable
WHERE Sex='女'
GROUP BY Class
) A
GROUP BY 班级

本文引用自:/article/6402947.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: