मैं क्वेरी द्वारा समूहीकृत एक विशिष्ट कॉलम के लिए सभी पंक्तियों का उत्पाद प्राप्त करने की कोशिश कर रहा हूं। सबसे अधिक उदाहरण मुझे मिला है जो मुझे संयोजन की ओर इशारा करता है 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
तो सारांश में ... आप एक स्तंभ में पंक्तियों को कैसे गुणा करते हैं जिसमें नकारात्मक या शून्य मूल्यवान संख्या हो सकती है?