求解Oracle求百分比的方法(oracle求百分比)
Oracle中,有时会有需求要求从一堆数据中求出每个值占总数的百分比,比如从一堆准备对服务的评价的用户中,求出每种评价占总评价的百分比。Oracle提供了两种方法可以帮助我们快速的求解此类需求。
一,利用除法计算,之后转换成百分比
比如从一组用户对服务的评价中,统计不同评价的次数,并求出每种评价占总评价的百分比,具体代码实现如下:
“`sql
select item , rate ,round(rate/total *100,2) || ‘%’ pct
from(
select
item, count(*) rate,
sum(count(*)) over () total
from t
group by item
)
说明:先使用count(*)统计每种评价出现的次数rate,使用sum(count(*)) over ()求出总评价总次数total,计算比值rate/total,最后将计算出的比值转换成百分比格式。
二,使用分析函数计算还可以使用分析函数计算,如果需求是需要按用户再细分,可以使用如下代码:
```sql--求比值
select USERID,ITEM, rate,
round(100*rate/sum(rate) over (partition by userid),2)||'%' pctfrom(
select USERID,ITEM, count(*) rate from t
group by USERID,ITEM)
以上是求解Oracle求百分比的两种方法,利用sql语句可以快速的求解出百分比,能够满足不同需求要求。