使用sql语句计算百分比

使得SA/TotelTime ,SB/TotelTime ,SC/TotelTime ,SD/TotelTime ,SE/TotelTime
得出每个的百分比

    1、若针对每行求百分比: select SA/TotelTime ,SB/TotelTime ,SC/TotelTime ,SD/TotelTime ,SE/TotelTime from 表名 。

    2、若是对总计后的值求百分比: select sum(SA)/sum(TotelTime) ,sum(SB)/sum(TotelTime) ,sum(SC)/sum(TotelTime) ,sum(SD)/sum(TotelTime) ,sum(SE)/sum(TotelTime) from 表名

    3、当然,以上都是以小数形式显示结果,若要以百分比形式显示结果:乘以100,并保留两位小数,然后加上“%”即可。
    如:round((SA/TotelTime)*100,2) & "%"

    select mz as '民族',count(*) as '人数',SUBSTRING (convert(varchar (20),

    (count(*)/80.00*100) ),1,4)+'%'   as '比例'  from ryxx group by mz 

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
有点不明白
1、若针对每行求百分比:
select SA/TotelTime ,SB/TotelTime ,SC/TotelTime ,SD/TotelTime ,SE/TotelTime from 表名
2、若是对总计后的值求百分比:
select sum(SA)/sum(TotelTime) ,sum(SB)/sum(TotelTime) ,sum(SC)/sum(TotelTime) ,sum(SD)/sum(TotelTime) ,sum(SE)/sum(TotelTime) from 表名
3、当然,以上都是以小数形式显示结果,若要以百分比形式显示结果:乘以100,并保留两位小数,然后加上“%”即可。
如:round((SA/TotelTime)*100,2) & "%"本回答被提问者和网友采纳
第2个回答  2012-09-21
注意%的格式问题:一般使用:
select
case when sum(TotelTime) = '0' then '-' else to_char((sum(SA)/sum(TotelTime))*100,'fm99999990.00')||'%'
from table
where ...
每一个百分比的计算都依此转化即可
第3个回答  2012-09-19
发表结构看看。追问

图片上就是表的一部分啊