我尝试在 PostgreSQL 中为产品 (*) 创建一个聚合。
我行的字段类型是“ double ”

所以,我试过:

CREATE AGGREGATE nmul(numeric)
(
   sfunc = numeric_mul,
   stype = numeric
);

当我启动查询时,结果:
ERROR:  function nmul(double precision) does not exist
LINE 4: CAST(nmul("cote") AS INT),

谢谢

最佳答案

我找到了一个非常聪明的人的解决方案,他意识到您可以使用对数来实现这一目标(credit goes to him):

select exp(sum(ln(x))) from generate_series(1,5) x;
 exp
-----
 120
(1 row)

关于sql - PostgreSQL 中的产品聚合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13156055/

10-11 06:38