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
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Splunk Enterprise Security: An Automated Phishing Response Workflow

Originally posted on Splunk.com.   Key takeaways  The volume of phishing emails can overwhelm even the most ...

Sharper ES Detections, Agentic AI Integrations, Smarter Workload Management, and More ...

Splunk Lantern is Splunk’s customer success center that provides practical guidance from Splunk experts on key ...

Data Outage Monitoring and Reporting

We’ve all been there, right? Living our best life, working on our Splunk environment, when out of nowhere a ...