<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Product of a Column in Splunk Search</title>
    <link>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/707825#M239380</link>
    <description>&lt;P&gt;I would use &lt;STRONG&gt;list()&lt;/STRONG&gt; instead of &lt;STRONG&gt;values()&lt;/STRONG&gt; to prevent removal of duplicates and wrap the product in &lt;STRONG&gt;exact()&lt;/STRONG&gt; to prevent rounding errors:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;| makeresults format=csv data="value_a
0.44
0.25
0.67
0.44" 
| stats list(value_a) as value_a
| eval "product(value_a)"=1
| foreach value_a mode=multivalue [ eval "product(value_a)"=exact('product(value_a)' * &amp;lt;&amp;lt;ITEM&amp;gt;&amp;gt;) ]
| table "product(value_a)"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;=&amp;gt;&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;STRONG&gt;product(value_a)&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="100%"&gt;0.032428&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Tue, 31 Dec 2024 18:32:49 GMT</pubDate>
    <dc:creator>tscroggins</dc:creator>
    <dc:date>2024-12-31T18:32:49Z</dc:date>
    <item>
      <title>Product of a Column</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/707749#M239364</link>
      <description>&lt;P&gt;I'm trying to find a simple way to calculate the product of a single column, e.g.&lt;/P&gt;&lt;TABLE border="1" width="44.44444444444444%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="50%"&gt;&lt;STRONG&gt;value_a&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.44&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="50%"&gt;0.25&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="50%"&gt;0.67&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Ideally, I could use something like this:&lt;/P&gt;&lt;PRE&gt;| stats product(value_a)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;But this doesn't seem possible.&lt;/P&gt;</description>
      <pubDate>Mon, 30 Dec 2024 21:16:54 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/707749#M239364</guid>
      <dc:creator>kalverra</dc:creator>
      <dc:date>2024-12-30T21:16:54Z</dc:date>
    </item>
    <item>
      <title>Re: Product of a Column</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/707755#M239365</link>
      <description>&lt;P&gt;Correct, you can't multiply down columns, but you can with rows, so depending on how many events and columns you want the product of, you could do something like this&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| makeresults format=csv data="value_a,value_b,otherValue
0.44,1,10
0.25,2,20
0.67,3,30"
| appendpipe
    [| transpose 0
    | eval product = 1
    | foreach row*
        [eval product = product * '&amp;lt;&amp;lt;FIELD&amp;gt;&amp;gt;']
    | eval {column} = product
    | stats values(value_a) as value_a values(value_b) as value_b]&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 31 Dec 2024 00:19:33 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/707755#M239365</guid>
      <dc:creator>ITWhisperer</dc:creator>
      <dc:date>2024-12-31T00:19:33Z</dc:date>
    </item>
    <item>
      <title>Re: Product of a Column</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/707758#M239366</link>
      <description>&lt;P&gt;Another approach is to (almost) use stats:-) as you original proposed. &amp;nbsp;With a little help of foreach.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| stats values(value_a) as value_a
| eval product = 1
| foreach value_a mode=multivalue
    [eval product = product * &amp;lt;&amp;lt;ITEM&amp;gt;&amp;gt;]&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is an emulation you can play with and compare with real data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| makeresults format=csv data="value_a
0.44
0.25
0.67"
``` data emulation above ```&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The above search gives this result&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;DIV class=""&gt;value_a&lt;/DIV&gt;&lt;/TD&gt;&lt;TD&gt;product&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;DIV class=""&gt;0.25&lt;/DIV&gt;&lt;DIV class=""&gt;0.44&lt;/DIV&gt;&lt;DIV class=""&gt;0.67&lt;/DIV&gt;&lt;/TD&gt;&lt;TD&gt;0.074&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Tue, 31 Dec 2024 01:43:48 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/707758#M239366</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2024-12-31T01:43:48Z</dc:date>
    </item>
    <item>
      <title>Re: Product of a Column</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/707825#M239380</link>
      <description>&lt;P&gt;I would use &lt;STRONG&gt;list()&lt;/STRONG&gt; instead of &lt;STRONG&gt;values()&lt;/STRONG&gt; to prevent removal of duplicates and wrap the product in &lt;STRONG&gt;exact()&lt;/STRONG&gt; to prevent rounding errors:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;| makeresults format=csv data="value_a
0.44
0.25
0.67
0.44" 
| stats list(value_a) as value_a
| eval "product(value_a)"=1
| foreach value_a mode=multivalue [ eval "product(value_a)"=exact('product(value_a)' * &amp;lt;&amp;lt;ITEM&amp;gt;&amp;gt;) ]
| table "product(value_a)"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;=&amp;gt;&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;STRONG&gt;product(value_a)&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="100%"&gt;0.032428&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Tue, 31 Dec 2024 18:32:49 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/707825#M239380</guid>
      <dc:creator>tscroggins</dc:creator>
      <dc:date>2024-12-31T18:32:49Z</dc:date>
    </item>
    <item>
      <title>Re: Product of a Column</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/710947#M240079</link>
      <description>&lt;P&gt;Thank you everyone that replied with helpful comments. I however discovered a math trick with logarithms to accomplish this far more succinctly.&lt;/P&gt;&lt;PRE&gt;| eval log_value = ln(value_a)&lt;BR /&gt;| stats sum(log_value) AS log_sum&lt;BR /&gt;| eval product = exp(log_sum)&lt;/PRE&gt;</description>
      <pubDate>Fri, 07 Feb 2025 16:54:00 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/710947#M240079</guid>
      <dc:creator>kalverra</dc:creator>
      <dc:date>2025-02-07T16:54:00Z</dc:date>
    </item>
    <item>
      <title>Re: Product of a Column</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/710974#M240084</link>
      <description>&lt;P&gt;Now you're Splunking! Watch out for approximation errors!&lt;/P&gt;&lt;P&gt;2 * 3 * 4 = 24&lt;BR /&gt;exp(ln(2) + ln(3) + ln(4)) ~= &lt;SPAN&gt;23.999999999999993&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 08 Feb 2025 17:19:56 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Product-of-a-Column/m-p/710974#M240084</guid>
      <dc:creator>tscroggins</dc:creator>
      <dc:date>2025-02-08T17:19:56Z</dc:date>
    </item>
  </channel>
</rss>

