I want to create the new_field when other values of field_1 is less than of first value.
Here in below example as 23 greater than other values then do sum of all which is 44.
for 10 is the smallest then its result is 10
for 11 there is one more value is less which is 10 then do sum with 10 then result is 21
The following will work in Splunk 9 with the new multivalue mode in foreach.
| stats values(field_1) as field_1
| foreach field_1 mode=multivalue
[eval new_field = mvappend(new_field, tostring(if(isnull(new_field), 0, max(new_field)) + <<ITEM>>))]
| eval zip = mvzip(field_1, new_field, ":")
| mvexpand zip
| eval zip = split(zip, ":")
| eval field_1 = mvindex(zip, 0), new_field = mvindex(zip, 1)
(If you need to access other fields in original search, modify "group by" clause or use eventstats as opposed to stats.)
I totally thought this could be solved with mvmap (no need for Splunk 9), but I couldn't get that to work.
The following will work in Splunk 9 with the new multivalue mode in foreach.
| stats values(field_1) as field_1
| foreach field_1 mode=multivalue
[eval new_field = mvappend(new_field, tostring(if(isnull(new_field), 0, max(new_field)) + <<ITEM>>))]
| eval zip = mvzip(field_1, new_field, ":")
| mvexpand zip
| eval zip = split(zip, ":")
| eval field_1 = mvindex(zip, 0), new_field = mvindex(zip, 1)
(If you need to access other fields in original search, modify "group by" clause or use eventstats as opposed to stats.)
I totally thought this could be solved with mvmap (no need for Splunk 9), but I couldn't get that to work.
Thanks for the response.
It is working as expected in our UAT as you mentioned