版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WMSOK/article/details/78989522
Oracle,PostgreSQL都没有直接求几何平均数的方法,需要通过以下方式实现:
power(exp(1),ln(exp(sum(ln(col_a)))))/count(1)
首先要知道求积如何实现:
with sele as (select 3 as col_a union all select 4 as col_a)
select exp(sum(ln(col_a))) from sele
然后再知道如何开方:
--对4开2次方
select power(exp(1),ln(4)/2)
然后整合函数:
with sele as (select 3 as col_a union all select 4 as col_a)
select power(exp(1),ln(exp(sum(ln(col_a)))))/count(1) from sele
这个函数也可以在group by中使用。