Я намагаюся отримати Продукт усіх рядків для певного стовпця в групі за запитом. Більшість прикладів, які я знайшов, спрямовують мене на поєднання 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
Отже, підсумовуючи ... Як ви перемножуєте рядки в стовпчик, який може містити від’ємні чи нульові значення?