Splunk Search

Counting occurences in aggregation by fields

RonaldCWWong
Explorer

Hi community,

I have a question on counting the number of events per values() value in stats command.
For example having events with src_ip, user (and a couple of more) fields.
I would like to count each of the user occurence in the raw log. Example as below.

 | stats values(user) as values_user by src_ip 


Example:

_timeusersrc_ip
2025-08-11

ronald

192.168.2.5
2025-08-11jasmine 192.168.2.5
2025-08-11tim192.168.2.6
2025-08-11

ronald

192.168.2.5

 

I would like to have result as 

values_usercount_vaules_usersrc_ip
ronald
jasmine

ronald:2

jasmine:1

192.168.2.5
timtim:1192.168.2.6



Labels (5)
0 Karma
1 Solution

PrewinThomas
Motivator

@RonaldCWWong 

If I understood you correctly, you want to group by src_ip, list all the distinct user values per IP, and also count how many times each user appears for that IP.

try below,

...your base search...
| stats count by src_ip, user
| eventstats sum(count) as user_count by src_ip, user
| eval user_count_pair = user . ":" . user_count
| stats values(user) as values_user values(user_count_pair) as count_values_user by src_ip

demo1.JPG

 

 

Regards,
Prewin
Splunk Enthusiast | Always happy to help! If this answer helped you, please consider marking it as the solution or giving a Karma. Thanks!

View solution in original post

bowesmana
SplunkTrust
SplunkTrust

Just use a couple of stats, first count the user numbers then create a new field with the user and count then re-stats with the values, e.g.

| makeresults format=csv data="_time,user,src_ip
2025-08-11,ronald,192.168.2.5
2025-08-11,jasmine,192.168.2.5
2025-08-11,tim,192.168.2.6
2025-08-11,ronald,192.168.2.5"
``` Like this ```
| stats count by user src_ip
| eval user_count=user.":".count
| stats values(user*) as values_user* by src_ip

RonaldCWWong
Explorer

thanks for help 🙂

0 Karma

PrewinThomas
Motivator

@RonaldCWWong 

If I understood you correctly, you want to group by src_ip, list all the distinct user values per IP, and also count how many times each user appears for that IP.

try below,

...your base search...
| stats count by src_ip, user
| eventstats sum(count) as user_count by src_ip, user
| eval user_count_pair = user . ":" . user_count
| stats values(user) as values_user values(user_count_pair) as count_values_user by src_ip

demo1.JPG

 

 

Regards,
Prewin
Splunk Enthusiast | Always happy to help! If this answer helped you, please consider marking it as the solution or giving a Karma. Thanks!

RonaldCWWong
Explorer

thanks mate, this is exactly what I am looking for 🙂

0 Karma
Career Survey
First 500 qualified respondents will receive a $20 gift card! Tell us about your professional Splunk journey.
Get Updates on the Splunk Community!

Thanks for the Memories! Splunk University, .conf25, and our Community

Thank you to everyone in the Splunk Community who joined us for .conf25, which kicked off with our iconic ...

Data Persistence in the OpenTelemetry Collector

This blog post is part of an ongoing series on OpenTelemetry. What happens if the OpenTelemetry collector ...

Introducing Splunk 10.0: Smarter, Faster, and More Powerful Than Ever

Now On Demand Whether you're managing complex deployments or looking to future-proof your data ...