Splunk Search

Arithmetic operation on fields from different events

sstanlee
Explorer

Consider the below types of events

fields  :     OS         transaction      numbers

Events:     Win        purchased           150

                   Unix       purchased           200

                   Win        sold                         100

                   Unix       sold                         125

I want the results to be:

 

OS      InHand(purchased-sold)

Win      50

Unix     75

 

How to do this?

Labels (2)
0 Karma
1 Solution

thambisetty
SplunkTrust
SplunkTrust
| makeresults | eval _raw="OS,transaction,numbers
Win,purchased,150
Unix,purchased,200
Win,sold,100
Unix,sold,125"
| multikv forceheader=1
| xyseries OS transaction numbers
| eval InHand=purchased-sold
| table OS InHand

 

upvote if my answer solves your problem.

————————————
If this helps, give a like below.

View solution in original post

thambisetty
SplunkTrust
SplunkTrust
| makeresults | eval _raw="OS,transaction,numbers
Win,purchased,150
Unix,purchased,200
Win,sold,100
Unix,sold,125"
| multikv forceheader=1
| xyseries OS transaction numbers
| eval InHand=purchased-sold
| table OS InHand

 

upvote if my answer solves your problem.

————————————
If this helps, give a like below.

sstanlee
Explorer

I didn't get the results.  

<Index Search>| 

in verbose mode returns 

1. OS=Win Category=purchased Numbers=100

2. OS=Unix Category=purchased Numbers= 200

3. OS=Win Category=sold Number=50

4. OS=Unix Category=sold Number=125

My search scenario is, if OS is Windows, I want to calculate the remaining count which is purchased - sold. How to do this.

 

0 Karma

thambisetty
SplunkTrust
SplunkTrust

I have shared query for the values you posted. I tried before posting and its working 

————————————
If this helps, give a like below.

sstanlee
Explorer

I had more than 100 lines of data, but I quoted few as example.Initially it didnt work. I modified few of your code and it worked.  Thanks a lot. 

0 Karma

to4kawa
Ultra Champion
index=_internal | head 1
| fields _raw _time
| eval _raw="1. OS=Win Category=purchased Numbers=100
2. OS=Unix Category=purchased Numbers=200
3. OS=Win Category=sold Number=50
4. OS=Unix Category=sold Number=125"
| multikv noheader=t
| fields _raw _time
| kv
| rename COMMENT as "this is your sample"

| eval Numbers=coalesce(Numbers,-1 * Number)
| stats sum(Numbers) as "InHand(purchased-sold)" by OS

sstanlee
Explorer

It worked. Thanks a lot.

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!

Step into “Hunt the Insider: An Splunk ES Premier Mystery” to catch a cybercriminal ...

After a whole week of being on call, you fell asleep on your keyboard, and you hit a sequence of buttons that ...

SplunkTrust Application Period is Officially OPEN!

It's that time, folks! The application/nomination period for the 2026-2027 SplunkTrust is officially open. If ...

Announcing Modern Navigation: A New Era of Splunk User Experience

We are excited to introduce the Modern Navigation feature in the Splunk Platform, available to both cloud and ...