【发布时间】:2011-04-24 03:44:08
【问题描述】:
我正在寻找类似于 SELECT PRODUCT(table.price) FROM table GROUP BY table.sale 的东西,类似于 SUM 的工作方式。
我是否遗漏了文档中的某些内容,或者真的没有 PRODUCT 函数?
如果是这样,为什么不呢?
注意:我在 postgres、mysql 和 mssql 中查找了该函数,但没有找到,所以我假设所有 sql 都不支持它。
【问题讨论】:
-
我猜想在一组数字上计算乘积比求和要难得多。即使在您的示例中,您希望多久计算一次一组价格的乘积?
-
product(table.price) 应该回答的价值是多少?阅读“产品聚合函数”,我知道它是返回结果集中找到的所有 table.price 值的乘积:Row1.Price * Row2.Price * ... * RowN.Price。但是对于我的生活,我无法理解这个价值“意味着”什么,它应该传达什么信息?对于价格或任何其他类型的价值,它的实际应用是什么?请赐教。
-
就我而言,它实际上不是为了价格,而是为了获得收益的乘积(qty_out / qty_in)。
-
@MarjanVenema 将我带到这里的用例:
risk和risk_prevention表中的 eevry 风险有一个damage_value代表处于风险中的金额。每个risk_prevention都有一个risk_multiplier>0 和damage_value * 所有risk_prevention.risk_multiplier。这个逻辑不是我的身份。它是客户正在使用的以及客户在软件中想要的。 (抱歉伪代码不好) -
当 var 始终为正时,exp(sum(log(var1)) 是乘积(var1)。