Splunk Search

Counting occurences in aggregation by fields

RonaldCWWong
New Member

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
Builder

@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
New Member

thanks for help :slightly_smiling_face:

0 Karma

PrewinThomas
Builder

@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
New Member

thanks mate, this is exactly what I am looking for :slightly_smiling_face:

0 Karma
Get Updates on the Splunk Community!

The Payment Operations Wake-Up Call: Why Financial Institutions Can't Afford ...

The same scenario plays out across financial institutions daily. A payment system fails at 11:30 AM on a busy ...

Make Your Case: A Ready-to-Send Letter for Getting Approval to Attend .conf25

Hello Splunkers, Want to attend .conf25 in Boston this year but not sure how to convince your manager? We've ...

Community Spotlight: A Splunk Expert's Journey

In the world of data analytics, some journeys leave a lasting impact not only on the individual but on the ...