欢迎光临
我们一直在努力

求解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语句可以快速的求解出百分比,能够满足不同需求要求。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。