我试图获取按查询分组的特定列的所有行的乘积。我发现的大多数示例都将我引向了exp
,sum
并且log
exp(sum(log([Column A])))
我遇到的问题是该列包含一些零值,因此当零传递给log
函数时出现此错误:
发生无效的浮点运算。
我以为我可以通过使用case
表达式来解决这个问题,但是那似乎并没有像我认为的那样起作用,因为它似乎可以评估所有情况。
select
Name,
Product = case
when min([Value]) = 0 then 0
when min([Value]) <> 0 then exp(sum(log(I))) -- trying to get the product of all rows in this column
end
from ids
group by Name
给定以下结果集:
Id Name Value
_________________________________
1 a 1
2 a 2
3 b 0
4 b 1
我希望得到以下行:
Name Product
_____________
a 2
b 0
因此,总而言之...如何在一列中可以包含负值或零值的行相乘?