用分析函数就可以了
select name ,quantity/sum(quantity)over(order by name) from 表名
函数:to_char(数字,格式),格式小数点前面一位是零.
------------------
-----------------------------------补充-----------------------------------
如果要加上百分比的,做些小处理即可
-----------------------------------------
实现代码:
ranges,?COUNT(*) rs ,100*round(COUNT(*)/SUM(COUNT(*))
GROUP?BY?CASE
END
扩展资料
sum(..) over(..)用法分析:
sum(...) over( ),对所有行求和;
sum(...) over( order by ... ), 连续求和;
sum(...) over( partition by... ),同组内所行求和;
sum(...) over( partition by... order by ... ),同第1点中的排序求和原理,只是范围限制在组内.
over不能单独使用,要和分析函数:rank(),dense_rank(),row_number(),sum()等一起使用.
含义,按columname1指定的字段进行分组排序,或者说按字段columnname1的值进行分组排序.
例子:
select deptno,ename,sal,
sum(sal) over (partition by deptno order by ename) 部门连续求和,--各部门的薪水"连续"求和
sum(sal) over (partition by deptno) 部门总和, -- 部门统计的总和,同一部门总和不变
PERCENT_ZY
----------
根据上面的运行结果.
你的 SQL 可以修改为:
to_char( (sum(zy_js_to_rs)/sum(enterprise_to_rs)) * 100 ) || '%' AS percent_zy_js
以上就是土嘎嘎小编为大家整理的oracle百分比怎么求相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!