Splunk Search

conditional average

andreaswpv
Explorer

Hi 

need to calculate the average based on a condition. 

  • testing=true vs testing=false  (lets say field A)
  • field B has the values to average (milliseconds)
  • field C has urls 

something like this:

| stats avg(fieldB, when field A testing true) as trueV avg(fieldB, when field A testing false) as falseV by Field C

Goal is a table like this:

url  | average (true) | average( false).

 

 

 

Labels (1)
Tags (2)
0 Karma
1 Solution

ITWhisperer
SplunkTrust
SplunkTrust

Try something like this

| eval trueA=if(fieldA=true,fieldB,null())
| eval falseA=if(fieldA=true,null(),fieldB)
| stats avg(trueA) as trueV avg(falseA) as falseV by fieldC

View solution in original post

ITWhisperer
SplunkTrust
SplunkTrust

Try something like this

| eval trueA=if(fieldA=true,fieldB,null())
| eval falseA=if(fieldA=true,null(),fieldB)
| stats avg(trueA) as trueV avg(falseA) as falseV by fieldC

andreaswpv
Explorer

Thanks, that works. Now I understand this - this is making two separate 'fields' based on the condition, to avoid having the calculation either in the eval, or in the stats (which both don't work). 

0 Karma
Get Updates on the Splunk Community!

🔐 Trust at Every Hop: How mTLS in Splunk Enterprise 10.0 Makes Security Simpler

From Idea to Implementation: Why Splunk Built mTLS into Splunk Enterprise 10.0  mTLS wasn’t just a checkbox ...

Observe and Secure All Apps with Splunk

  Join Us for Our Next Tech Talk: Observe and Secure All Apps with SplunkAs organizations continue to innovate ...

Splunk Decoded: Business Transactions vs Business IQ

It’s the morning of Black Friday, and your e-commerce site is handling 10x normal traffic. Orders are flowing, ...