SQL语句计算男女员工各占比例。

来源:百度知道 编辑:UC知道 时间:2024/06/07 08:52:30
现在有表“员工档案”,其中性别为男所占比例和性别为女所占比例计算出来。怎么写啊?
结果表示为:
员工总数 男员工数 男所占比例 女员工数 女所占比例

假设表员工档案里有性别、姓名两个字段
select count(*) as 员工总数,sum(case when 性别=男 then 1 else 0 end) 男员工数,sum(case when 性别=男 then 1 else 0 end)/nullif(count(*),0) 男所占比例,sum(case when 性别=女 then 1 else 0 end) 女员工数,sum(case when 性别=女 then 1 else 0 end) /nullif(count(*),0)女所占比例
from 员工档案

你自己试试看吧
楼上的写的不错,但是最好注意一些除0问题,要是张空表会报除0错误的。

表infor
姓名 性别 id 工资 联系方式等等
性别列为insex 含check 约束('男' or '女')
那么查询为

select count(insex) as 员工总数, sum(decode(insex,'男',1,'女',0)) as 男员工数,sum(decode(insex,'男',1,'女',0))/count(insex) as 男所占比例,sum(decode(insex,'男',0,'女',1)) as 女员工数,
sum(decode(insex,'男',0,'女',1))/count(insex) as 女所占比例
from infor;

declare @tmp table (xb int,cnt int)
insert into @tmp
select xb,count(*) from 员工档案
group by xb
declare @sum int;
select @sum=sum(cnt) from @tmp
select @sum sums,a.cnt mens,a.bl mensbl,b.cnt womens,b.bl wome