将一个表中的总人数,男生人数,女生人数同时输出

例如:

新建一个系部表department(系部名称,总人数,男生人数,女生人数),T-sql语句从学生表中采集相应信息添加到系部表中

介绍两种方法

1.用到了select into,要注意的是select into要求此前并没有department表

完成这题的方法可以为

    select 所在系 as 系部名称,count(*) as 总人数,

    sum(case 性别 when '男' then 1 else 0 end) as 男生人数,

    sum(case 性别 when '女' then 1 else 0 end) as 女生人数

    into department

    from 学生

    group by 所在系

2.分步骤进行,

(1)先建一个系部表,代码省略

(2)将系部名称和总人数插入到系部表

 insert into 系部(系部名称,总人数)

execute

(‘select 所在系,count(*) from 学生 group by 所在系’)

结果为

 将一个表中的总人数,男生人数,女生人数同时输出_第1张图片

(3)求得总男生人数和女生总人数并分别建两个临时表,这里用到select into

select 所在系 as 系部名称,count(*) as 男生人数

into 男生临时表

from 学生

where 性别=‘男’

group by 所在系

go

select 所在系 as 系部名称,count(*) as 女生人数

into 女生临时表

from 学生

where 性别=‘女’

group by 所在系

go


 注意where要放在group by前面,having放在group by后面

将一个表中的总人数,男生人数,女生人数同时输出_第2张图片

将一个表中的总人数,男生人数,女生人数同时输出_第3张图片

(4)将男生临时表和女生临时表的值赋给系部表

将一个表中的总人数,男生人数,女生人数同时输出_第4张图片

将一个表中的总人数,男生人数,女生人数同时输出_第5张图片

你可能感兴趣的:(sql)