表中有 A , B , C 三个字段(类型均为 int)现想计算各列数字所占三列总数的百分比,如:  A  B  C
  1  1  2A: 1/(1+1+2)= 25%
B: 1/(1+1+2)= 25%
C: 2/(1+1+2)= 50%请教,有些什么简易的写法(原因是实际应用中字段比较多),谢谢

解决方案 »

  1.   

    select to_char(a/(a+b+c)*100)||'%',
      to_char(b/(a+b+c)*100)||'%',
      to_char(c/(a+b+c)*100)||'%'
    from tt
      

  2.   

    select  to_char((a/(a+b+c))*100,'99D99')||'%' as 'A比率' ,
            to_char((b/(a+b+c))*100,'99D99')||'%' as 'B比率' ,
            to_char((c/(a+b+c))*100,'99D99')||'%' as 'C比率'
    from tb;
      

  3.   

    如果字段数是固定的,可以用二楼的方法,最好建立视图方便查询,如CREATE OR REPLACE VIEW v_1(a,b,c,pa,pb,pc) AS
    SELECT
    a,b,c,a/(a+b+c)*100,b/(a+b+c)*100,c/(a+b+c)*100 from sometable;