SQL求几几何平均数

Oracle,PostgreSQL都没有直接求几何平均数的方法,须要经过如下方式实现:web

power(exp(1),ln(exp(sum(ln(col_a))))/count(1))sql

首先要知道求积如何实现:svg

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)

而后整合函数:spa

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中使用。code