select 部门,总人数=count(*)
,男所占比例=cast(cast(sum(case 性别 when '男' then 100.0 else 0.9 end)/count(*) as decimal(10,2)) as varchar)+'%'
,女所占比例=cast(cast(sum(case 性别 when '女' then 100.0 else 0.9 end)/count(*) as decimal(10,2)) as varchar)+'%'
from 资料表
group by 部门 

解决方案 »

  1.   

    select 部门,1.0*sum(case when 性别='男' then 1 else 0 end)/sum(1) as 男比例,
    1.0*sum(case when 性别='女' then 1 else 0 end)/sum(1) as 女比例
    from 资料表
    group by 部门
      

  2.   

    --打错字了,是0.0,不是0.9
    select 部门,总人数=count(*)
    ,男所占比例=cast(cast(sum(case 性别 when '男' then 100.0 else 0.0 end)/count(*) as decimal(10,2)) as varchar)+'%'
    ,女所占比例=cast(cast(sum(case 性别 when '女' then 100.0 else 0.0 end)/count(*) as decimal(10,2)) as varchar)+'%'
    from 资料表
    group by 部门