Splunk Search

aggregate rows with same value hide count

lemospt
Explorer

Hi guys,

 

i have the following query that produces table below

 

index=core_ct_report_* 
| eval brand=case(like(report_model, "cfg%"), "grandstream", like(report_model, "cisco%"), "Cisco", like(report_model, "ata%"), "Cisco", like(report_model, "snom%"), "Snom", like(report_model, "VISION%"), "Snom", like(report_model, "yealink%"), "Yealink", 1=1, "Other")
| stats count by fw_version,report_model,brand

| table brand report_model fw_version count |sort report_model, count desc

lemospt_0-1723148605629.png

In this table i want to group the rows with the same value in report_model column, i use stats values() to achive that as follows

index=core_ct_report_* 
| eval brand=case(like(report_model, "cfg%"), "grandstream", like(report_model, "cisco%"), "Cisco", like(report_model, "ata%"), "Cisco", like(report_model, "snom%"), "Snom", like(report_model, "VISION%"), "Snom", like(report_model, "yealink%"), "Yealink", 1=1, "Other")
|stats count by fw_version,report_model,brand | stats values(brand) as brand values(fw_version) as fw_version values(count) as count by report_model

|table brand report_model fw_version count

lemospt_1-1723148768407.png

 

but with this query the count is also grouped, on 6th row there are count values missing, the count missing has the value 1 so only one '1' is showed.

i can't remove count from stats values() or the count values doesn't appear in final table.

What i'm doing wrong?

 

Thanks in advance for your help.

 

Labels (1)
0 Karma
1 Solution

ITWhisperer
SplunkTrust
SplunkTrust

Values gives you an ordered set of unique values, try using the list aggregation function instead

index=core_ct_report_* 
| eval brand=case(like(report_model, "cfg%"), "grandstream", like(report_model, "cisco%"), "Cisco", like(report_model, "ata%"), "Cisco", like(report_model, "snom%"), "Snom", like(report_model, "VISION%"), "Snom", like(report_model, "yealink%"), "Yealink", 1=1, "Other")
|stats count by fw_version,report_model,brand | stats values(brand) as brand list(fw_version) as fw_version list(count) as count by report_model

|table brand report_model fw_version count

View solution in original post

ITWhisperer
SplunkTrust
SplunkTrust

Values gives you an ordered set of unique values, try using the list aggregation function instead

index=core_ct_report_* 
| eval brand=case(like(report_model, "cfg%"), "grandstream", like(report_model, "cisco%"), "Cisco", like(report_model, "ata%"), "Cisco", like(report_model, "snom%"), "Snom", like(report_model, "VISION%"), "Snom", like(report_model, "yealink%"), "Yealink", 1=1, "Other")
|stats count by fw_version,report_model,brand | stats values(brand) as brand list(fw_version) as fw_version list(count) as count by report_model

|table brand report_model fw_version count
Get Updates on the Splunk Community!

Build Your First SPL2 App!

Watch the recording now!.Do you want to SPL™, too? SPL2, Splunk's next-generation data search and preparation ...

Exporting Splunk Apps

Join us on Monday, October 21 at 11 am PT | 2 pm ET!With the app export functionality, app developers and ...

[Coming Soon] Splunk Observability Cloud - Enhanced navigation with a modern look and ...

We are excited to introduce our enhanced UI that brings together AppDynamics and Splunk Observability. This is ...