Splunk Search

How to drop extra fields while maintaining groupby?

yuanliu
SplunkTrust
SplunkTrust

To groupby?  Or not to groupby?  That is the question. (Not really.  The question arises because trellis splitby seems to depend on an invisible groupby register.)

Take the following example:

 

 

| makeresults count=10
| eval value = "value" . random() % 3
| stats count by value
| eventstats sum(count) as total
| eval ratio = count / total

 

 

If I want to visualize ratio as single value in trellis, I can add `| fields - total count` in the end.

groupby.png

But if there are many intermediate variables, it gets tedious to list them for dropping.  I thought `table value ratio` would be simpler, as statistics table is exactly the same, but SPL's invisible hand prevents splitby from seeing the original groupby field, so I get weird output like

groupbynot.png

I can avoid tedious `fields -` listing by doing another stats with groupby, e.g., `stats values(ratio) as ratio by value`.

groupbydouble.png

 But I feel silly to do a useless calculation.  Is there a simpler way to preserve groupby register without the tedious listing?

Labels (2)
0 Karma
1 Solution

yuanliu
SplunkTrust
SplunkTrust

is there any SPL answer to the original question?

The answer, it turns out, is yes.  Instead of listing intermediate field names for exclusion, name all intermediate fields to be "hidden", i.e., start with underscore _.  The above search can be written as

| makeresults count=10
| eval value = "value" . random() % 3
| stats count as _count by value
| eventstats sum(_count) as _total
| eval ratio = _count / _total

Splunk visualization will conveniently ignore hidden fields.

Screenshot 2026-01-21 at 12.49.26 PM.png

This writing has more elaborate use cases of this technique: Up Your Textual Viz with Splunk.

View solution in original post

0 Karma

yuanliu
SplunkTrust
SplunkTrust

I just realize that I can carefully name intermediate variables so I can drop them with wildcard.  But is there any SPL answer to the original question?

Tags (1)
0 Karma

yuanliu
SplunkTrust
SplunkTrust

is there any SPL answer to the original question?

The answer, it turns out, is yes.  Instead of listing intermediate field names for exclusion, name all intermediate fields to be "hidden", i.e., start with underscore _.  The above search can be written as

| makeresults count=10
| eval value = "value" . random() % 3
| stats count as _count by value
| eventstats sum(_count) as _total
| eval ratio = _count / _total

Splunk visualization will conveniently ignore hidden fields.

Screenshot 2026-01-21 at 12.49.26 PM.png

This writing has more elaborate use cases of this technique: Up Your Textual Viz with Splunk.

0 Karma
Get Updates on the Splunk Community!

AI for AppInspect

We’re excited to announce two new updates to AppInspect designed to save you time and make the app approval ...

App Platform's 2025 Year in Review: A Year of Innovation, Growth, and Community

As we step into 2026, it’s the perfect moment to reflect on what an extraordinary year 2025 was for the Splunk ...

Operationalizing Entity Risk Score with Enterprise Security 8.3+

Overview Enterprise Security 8.3 introduces a powerful new feature called “Entity Risk Scoring” (ERS) for ...