我尝试在 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/