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
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
相关文章推荐
- SQL 一条SQL语句 统计 各班总人数、男女各总人数 、该班级男女 比例
- 一条sql统计一个班级的男女人数
- 用一条sql统计所一个班级的男女人数
- SQL中if语句统计班级党员人数
- SQL 一条SQL语句 统计 各班总人数,男女各总人数 ,各自 男女 比例
- Sql -- 练习2 统计列出矩阵类型各分数段人数
- SQL语句:统计男女的人数
- 24、Power Query-数学运算的应用(统计男女人数)
- Struts2_011_在线人数统计练习
- sql:查询每个班级,及格人数和不及格人数
- SQL语句练习实例之六 人事系统中的缺勤(休假)统计
- 用PL/SQL语言编写一程序,实现按部门分段统计各个工资段的职工人数、以及各部门的工资总额
- 汇编-统计男女生人数
- 查询统计一个班级表中男生女生各自的数量的sql
- SQL语句 按年龄段分组统计人数
- 一个用来统计相同姓名人数的SQl语句
- 查询班级中及格,一般,优秀的人数的sql语句
- 在线人数统计 V1.0(Asp.net+ SqlServer) 源码下载