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

现在有表“员工档案”,其中性别为男所占比例和性别为女所占比例计算出来。怎么写啊?结果表示为:员工总数男员工数男所占比例女员工数女所占比例... 现在有表“员工档案”,其中性别为男所占比例和性别为女所占比例计算出来。怎么写啊?
结果表示为:
员工总数 男员工数 男所占比例 女员工数 女所占比例
展开
 我来答
百度网友e425885af
推荐于2017-11-26 · TA获得超过7650个赞
知道大有可为答主
回答量:2940
采纳率:0%
帮助的人:2730万
展开全部
假设表员工档案里有性别、姓名两个字段
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错误的。
百度网友c5f275c
2008-09-09 · TA获得超过1842个赞
知道小有建树答主
回答量:646
采纳率:50%
帮助的人:818万
展开全部
表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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duanwy
2008-09-09 · TA获得超过158个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:122万
展开全部
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 womensbl
from
(select cnt,cnt*100.0/@sum bl from @tmp where xb='男') a,
(select cnt,cnt*100.0/@sum bl from @tmp where xb='女') b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式