求解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)||'%' pct
from(
select USERID,ITEM, count(*) rate
from t
group by USERID,ITEM
)

以上是求解Oracle求百分比的两种方法,利用sql语句可以快速的求解出百分比,能够满足不同需求要求。


数据运维技术 » 求解Oracle求百分比的方法(oracle求百分比)