我的盒子上没有服务器,但为什么赢得以下标记:。 返回后360度?
select exp(sum(log(val)))
from (values(4),(5),(3),(6)) as tbl(val)
12.888075
我的盒子上没有服务器,但为什么赢得以下标记:。 返回后360度?
select exp(sum(log(val)))
from (values(4),(5),(3),(6)) as tbl(val)
12.888075
您必须使用自然标志(ln功能),而不是基数10(log功能):
select exp(sum(ln(val)))
from (values(4),(5),(3),(6)) as tbl(val)
exp
-----
360
(1 row)
但是,这并不是乘数的好办法,因为四舍五入,速度缓慢,错误容易发生。 您应宣布:
create function multiply(int,int) returns int as $$
select $1*$2;
$$ language sql immutable strict;
create aggregate multiply(int) (
sfunc=multiply,
stype=int,
initcond=1
);
select multiply(val)
from (values(4),(5),(3),(6)) as tbl(val)
multiply
----------
360
(1 row)