<?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 Stats function by multiple fields in Splunk Search</title>
    <link>https://community.splunk.com/t5/Splunk-Search/Stats-function-by-multiple-fields/m-p/332815#M99005</link>
    <description>&lt;P&gt;I have a table of data like this&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;Time1         Time2   Time3 Total
36.650000   16.050000   0.133333    74
44.866667   40.016667   0.366667    107.366667
54.966667   17.483333   0.366667    90.716667
2.083333    57.950000   22.483333   98.550000
41.733333   14.150000   0.150000    80.116667
3.283333    28.083333   0.400000    54.516667
44.783333   27.733333   0.466667    88.933333
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;There are 4 times produced for each event. I want to do a stats median, p25, p75 by each of these to result in a table like&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt; Process      Median     p25     p75
    Time1      #          #      #
    Time2      #          #      #
    Time3      #          #      #
    Total      #          #      #
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;What would be the best way to accomplish the above table? More information on the query can be given if necessary. The goal is to produce a box plot with four plots, one for each Process.&lt;/P&gt;</description>
    <pubDate>Tue, 12 Sep 2017 16:54:44 GMT</pubDate>
    <dc:creator>byu168168</dc:creator>
    <dc:date>2017-09-12T16:54:44Z</dc:date>
    <item>
      <title>Stats function by multiple fields</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Stats-function-by-multiple-fields/m-p/332815#M99005</link>
      <description>&lt;P&gt;I have a table of data like this&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;Time1         Time2   Time3 Total
36.650000   16.050000   0.133333    74
44.866667   40.016667   0.366667    107.366667
54.966667   17.483333   0.366667    90.716667
2.083333    57.950000   22.483333   98.550000
41.733333   14.150000   0.150000    80.116667
3.283333    28.083333   0.400000    54.516667
44.783333   27.733333   0.466667    88.933333
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;There are 4 times produced for each event. I want to do a stats median, p25, p75 by each of these to result in a table like&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt; Process      Median     p25     p75
    Time1      #          #      #
    Time2      #          #      #
    Time3      #          #      #
    Total      #          #      #
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;What would be the best way to accomplish the above table? More information on the query can be given if necessary. The goal is to produce a box plot with four plots, one for each Process.&lt;/P&gt;</description>
      <pubDate>Tue, 12 Sep 2017 16:54:44 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Stats-function-by-multiple-fields/m-p/332815#M99005</guid>
      <dc:creator>byu168168</dc:creator>
      <dc:date>2017-09-12T16:54:44Z</dc:date>
    </item>
    <item>
      <title>Re: Stats function by multiple fields</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Stats-function-by-multiple-fields/m-p/332816#M99006</link>
      <description>&lt;P&gt;Try like this&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;your current search giving fields Time1, TIme2, Time3, Total
| eval temp=1 | untable temp Process Time
| stats median(Time) as Median, p25(Time) as p25, p75(Time) as p75 by Process
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 12 Sep 2017 20:07:37 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Stats-function-by-multiple-fields/m-p/332816#M99006</guid>
      <dc:creator>somesoni2</dc:creator>
      <dc:date>2017-09-12T20:07:37Z</dc:date>
    </item>
    <item>
      <title>Re: Stats function by multiple fields</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Stats-function-by-multiple-fields/m-p/332817#M99007</link>
      <description>&lt;P&gt;@byu168168, I am sure someone will come up with the answer to aggregate the data as per your requirement directly using SPL. &lt;/P&gt;

&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="alt text"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/3486iC74BEAEE892C2603/image-size/large?v=v2&amp;amp;px=999" role="button" title="alt text" alt="alt text" /&gt;&lt;/span&gt;&lt;/P&gt;

&lt;P&gt;Until then please try out the following approach:&lt;/P&gt;

&lt;P&gt;&lt;CODE&gt;Step 1&lt;/CODE&gt;) Create all the required statistical aggregates as per your requirements for all four series i.e.&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;&amp;lt;YourBaseSearch&amp;gt;
| stats Median(T*) as T*_Median p25(T*) as T*_p25 p75(T*) as T*_p75
| foreach T*
      [eval &amp;lt;&amp;lt;FIELD&amp;gt;&amp;gt;=round(&amp;lt;&amp;lt;FIELD&amp;gt;&amp;gt;,1)]
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;PS: &lt;CODE&gt;&amp;lt;&lt;/CODE&gt; needs to be escaped as &lt;CODE&gt;&amp;amp;lt;&lt;/CODE&gt; and &lt;CODE&gt;&amp;gt;&lt;/CODE&gt; needs to be escaped as &lt;CODE&gt;&amp;amp;gt;&lt;/CODE&gt; in dashboard. In Search there is no need to escape.&lt;/P&gt;

&lt;P&gt;&lt;CODE&gt;Step 2&lt;/CODE&gt;: &lt;CODE&gt;Set&lt;/CODE&gt; the &lt;CODE&gt;token&lt;/CODE&gt; for each statistical aggregate as they all will be returned in the same/single row (using &lt;CODE&gt;&amp;lt;done&amp;gt;&lt;/CODE&gt; Search Event Handler. &lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;       &amp;lt;done&amp;gt;
         &amp;lt;set token="Time1_Median"&amp;gt;$result.Time1_Median$&amp;lt;/set&amp;gt;
         &amp;lt;set token="Time1_p25"&amp;gt;$result.Time1_p25$&amp;lt;/set&amp;gt;
         &amp;lt;set token="Time1_p75"&amp;gt;$result.Time1_p75$&amp;lt;/set&amp;gt;
         &amp;lt;set token="Time2_Median"&amp;gt;$result.Time2_Median$&amp;lt;/set&amp;gt;
         &amp;lt;set token="Time2_p25"&amp;gt;$result.Time2_p25$&amp;lt;/set&amp;gt;
         &amp;lt;set token="Time2_p75"&amp;gt;$result.Time2_p75$&amp;lt;/set&amp;gt;
         &amp;lt;set token="Time3_Median"&amp;gt;$result.Time3_Median$&amp;lt;/set&amp;gt;
         &amp;lt;set token="Time3_p25"&amp;gt;$result.Time3_p25$&amp;lt;/set&amp;gt;
         &amp;lt;set token="Time3_p75"&amp;gt;$result.Time3_p75$&amp;lt;/set&amp;gt;
         &amp;lt;set token="Total_Median"&amp;gt;$result.Total_Median$&amp;lt;/set&amp;gt;
         &amp;lt;set token="Total_p25"&amp;gt;$result.Total_p25$&amp;lt;/set&amp;gt;
         &amp;lt;set token="Total_p75"&amp;gt;$result.Total_p75$&amp;lt;/set&amp;gt;
       &amp;lt;/done&amp;gt;
     &amp;lt;/search&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;&lt;CODE&gt;Step 3&lt;/CODE&gt;: Print the result in required format using &lt;CODE&gt;&amp;lt;html&amp;gt;&lt;/CODE&gt; panel in Splunk using &lt;CODE&gt;&amp;lt;table&amp;gt;&lt;/CODE&gt; element with table formatting similar to what Splunk uses by default.&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;&amp;lt;dashboard&amp;gt;
  &amp;lt;label&amp;gt;Aggregate on multiple columns WIP&amp;lt;/label&amp;gt;
  &amp;lt;row&amp;gt;
    &amp;lt;panel&amp;gt;
      &amp;lt;title&amp;gt;Table with Mocked Data&amp;lt;/title&amp;gt;
      &amp;lt;table&amp;gt;
        &amp;lt;search&amp;gt;
          &amp;lt;query&amp;gt;| makeresults
| eval data=" 36.650000,16.050000,0.133333,74;44.866667,40.016667,0.366667,107.366667;54.966667,17.483333,0.366667,90.716667;2.083333,57.950000,22.483333,98.550000;41.733333,14.150000,0.150000,80.116667;3.283333,28.083333,0.400000,54.516667;44.783333,27.733333,0.466667,88.933333"
 | makemv delim=";" data
 | mvexpand data
 | eval data=split(data,",")
 | eval Time1=mvindex(data,0)
 | eval Time2=mvindex(data,1)
 | eval Time3=mvindex(data,2)
 | eval Total=mvindex(data,3)
 | fields - data _time
 | table T*&amp;lt;/query&amp;gt;
          &amp;lt;earliest&amp;gt;-24h@h&amp;lt;/earliest&amp;gt;
          &amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
          &amp;lt;sampleRatio&amp;gt;1&amp;lt;/sampleRatio&amp;gt;
        &amp;lt;/search&amp;gt;
        &amp;lt;option name="count"&amp;gt;20&amp;lt;/option&amp;gt;
        &amp;lt;option name="dataOverlayMode"&amp;gt;none&amp;lt;/option&amp;gt;
        &amp;lt;option name="drilldown"&amp;gt;none&amp;lt;/option&amp;gt;
        &amp;lt;option name="percentagesRow"&amp;gt;false&amp;lt;/option&amp;gt;
        &amp;lt;option name="rowNumbers"&amp;gt;false&amp;lt;/option&amp;gt;
        &amp;lt;option name="totalsRow"&amp;gt;false&amp;lt;/option&amp;gt;
        &amp;lt;option name="wrap"&amp;gt;true&amp;lt;/option&amp;gt;
      &amp;lt;/table&amp;gt;
    &amp;lt;/panel&amp;gt;
  &amp;lt;/row&amp;gt;
  &amp;lt;row&amp;gt;
    &amp;lt;panel&amp;gt;
      &amp;lt;title&amp;gt;Table with SPL Query Result&amp;lt;/title&amp;gt;
      &amp;lt;table&amp;gt;
        &amp;lt;search&amp;gt;
          &amp;lt;query&amp;gt;| makeresults
| eval data=" 36.650000,16.050000,0.133333,74;44.866667,40.016667,0.366667,107.366667;54.966667,17.483333,0.366667,90.716667;2.083333,57.950000,22.483333,98.550000;41.733333,14.150000,0.150000,80.116667;3.283333,28.083333,0.400000,54.516667;44.783333,27.733333,0.466667,88.933333"
 | makemv delim=";" data
 | mvexpand data
 | eval data=split(data,",")
 | eval Time1=mvindex(data,0)
 | eval Time2=mvindex(data,1)
 | eval Time3=mvindex(data,2)
 | eval Total=mvindex(data,3)
 | fields - data _time
 | table T*
 | stats Median(T*) as T*_Median p25(T*) as T*_p25 p75(T*) as T*_p75
 | foreach T*
     [eval &amp;lt;&amp;lt;FIELD&amp;gt;&amp;gt;=round(&amp;lt;&amp;lt;FIELD&amp;gt;&amp;gt;,1)]&amp;lt;/query&amp;gt;
          &amp;lt;earliest&amp;gt;-24h@h&amp;lt;/earliest&amp;gt;
          &amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
          &amp;lt;sampleRatio&amp;gt;1&amp;lt;/sampleRatio&amp;gt;
          &amp;lt;done&amp;gt;
            &amp;lt;set token="Time1_Median"&amp;gt;$result.Time1_Median$&amp;lt;/set&amp;gt;
            &amp;lt;set token="Time1_p25"&amp;gt;$result.Time1_p25$&amp;lt;/set&amp;gt;
            &amp;lt;set token="Time1_p75"&amp;gt;$result.Time1_p75$&amp;lt;/set&amp;gt;
            &amp;lt;set token="Time2_Median"&amp;gt;$result.Time2_Median$&amp;lt;/set&amp;gt;
            &amp;lt;set token="Time2_p25"&amp;gt;$result.Time2_p25$&amp;lt;/set&amp;gt;
            &amp;lt;set token="Time2_p75"&amp;gt;$result.Time2_p75$&amp;lt;/set&amp;gt;
            &amp;lt;set token="Time3_Median"&amp;gt;$result.Time3_Median$&amp;lt;/set&amp;gt;
            &amp;lt;set token="Time3_p25"&amp;gt;$result.Time3_p25$&amp;lt;/set&amp;gt;
            &amp;lt;set token="Time3_p75"&amp;gt;$result.Time3_p75$&amp;lt;/set&amp;gt;
            &amp;lt;set token="Total_Median"&amp;gt;$result.Total_Median$&amp;lt;/set&amp;gt;
            &amp;lt;set token="Total_p25"&amp;gt;$result.Total_p25$&amp;lt;/set&amp;gt;
            &amp;lt;set token="Total_p75"&amp;gt;$result.Total_p75$&amp;lt;/set&amp;gt;
          &amp;lt;/done&amp;gt;
        &amp;lt;/search&amp;gt;
        &amp;lt;option name="count"&amp;gt;20&amp;lt;/option&amp;gt;
        &amp;lt;option name="dataOverlayMode"&amp;gt;none&amp;lt;/option&amp;gt;
        &amp;lt;option name="drilldown"&amp;gt;none&amp;lt;/option&amp;gt;
        &amp;lt;option name="percentagesRow"&amp;gt;false&amp;lt;/option&amp;gt;
        &amp;lt;option name="rowNumbers"&amp;gt;false&amp;lt;/option&amp;gt;
        &amp;lt;option name="totalsRow"&amp;gt;false&amp;lt;/option&amp;gt;
        &amp;lt;option name="wrap"&amp;gt;true&amp;lt;/option&amp;gt;
      &amp;lt;/table&amp;gt;
      &amp;lt;html&amp;gt;
        &amp;lt;h2&amp;gt;Table with result formatted in HTML&amp;lt;/h2&amp;gt;
        &amp;lt;table class="table table-chrome table-striped wrapped-results"&amp;gt;
          &amp;lt;thead&amp;gt;
            &amp;lt;tr&amp;gt;
              &amp;lt;th&amp;gt;Process&amp;lt;/th&amp;gt;
              &amp;lt;th&amp;gt;Median&amp;lt;/th&amp;gt;
              &amp;lt;th&amp;gt;p25&amp;lt;/th&amp;gt;
              &amp;lt;th&amp;gt;p75&amp;lt;/th&amp;gt;
            &amp;lt;/tr&amp;gt;
          &amp;lt;/thead&amp;gt;
          &amp;lt;tbody&amp;gt;
            &amp;lt;tr&amp;gt;
              &amp;lt;td&amp;gt;Time1&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Time1_Median$&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Time1_p25$&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Time1_p75$&amp;lt;/td&amp;gt;
            &amp;lt;/tr&amp;gt;
            &amp;lt;tr&amp;gt;
              &amp;lt;td&amp;gt;Time2&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Time2_Median$&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Time2_p25$&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Time2_p75$&amp;lt;/td&amp;gt;
            &amp;lt;/tr&amp;gt;
            &amp;lt;tr&amp;gt;
              &amp;lt;td&amp;gt;Time3&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Time3_Median$&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Time3_p25$&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Time3_p75$&amp;lt;/td&amp;gt;
            &amp;lt;/tr&amp;gt;
            &amp;lt;tr&amp;gt;
              &amp;lt;td&amp;gt;Total&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Total_Median$&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Total_p25$&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;$Total_p75$&amp;lt;/td&amp;gt;
            &amp;lt;/tr&amp;gt;
          &amp;lt;/tbody&amp;gt;    
        &amp;lt;/table&amp;gt;
      &amp;lt;/html&amp;gt;
    &amp;lt;/panel&amp;gt;
  &amp;lt;/row&amp;gt;
&amp;lt;/dashboard&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 12 Sep 2017 20:11:54 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Stats-function-by-multiple-fields/m-p/332817#M99007</guid>
      <dc:creator>niketn</dc:creator>
      <dc:date>2017-09-12T20:11:54Z</dc:date>
    </item>
  </channel>
</rss>

