现在有一个数据库表A,里面有一个数值字段fintLength,现在通过三张表的关联后查询出来了满足条件的fintLength,是一个列表,现在要计算该列的每个fintLength占该列总和的百分比?请问这样的SQL该怎么写才能实现。
请各位高人指点,感激涕零!

解决方案 »

  1.   

    --方法1
    SELECT fintLength / SUM(fintLength) over() * 100 percet FROM A;--方法2
    SELECT fintLength / (SELECT SUM(fintLength) total FROM A) * 100 percent FROM A;
    --上面的写法最好写成with方式
    WITH t AS
     (SELECT SUM(fintLength) total FROM A)
    SELECT fintLength / (SELECT total FROM t) * 100 percent FROM A;
    --如果要保留小数位数可以使用trunc函数截取,或者使用round函数四舍五入
      

  2.   

    SELECT fintLength / (SELECT total FROM t) * 100 percent FROM A;
    这种用法比较容易理解