Scripted Field Unique Count of Sum Value

I need to create visualization metric for count of ID of value is 0
I have imported data to elasticsearch And the data in each ID has multiple lines, I would like to sum value by ID. Then Unique Count is a number whose sum is 0.
image

GET aggs_test/_search
{
  "size": 0,
  "aggs": {
    "ids": {
      "terms": {
        "field": "id.keyword"
      },
      "aggs": {
        "the_sum": {
          "sum": {
            "field": "value"
          }
        },
        "the_script_bucket": {
          "bucket_selector": {
            "buckets_path": {
              "the_sum": "the_sum.value"
            },
            "script": "params.the_sum == 0"
          }
        }
      }
    },
    "the_count_of_bucket": {
      "stats_bucket": {
        "buckets_path": "ids>the_sum"
      }
    }
  }
}

Hi Wangqinghuan
I'm tried. It not work for me

Hi , I post script again which wil get the count of id whose sum is 0.

Hi, I'm tried to use your new script but It not work for me
The value is incorrect

My field name
"Card Serial.keyword" is an "id"
"Duration" is a "Score"

After runing your script It Show value of sum only = 253. The Score is mistake
My Score 'Unique Count Card Serial of sum Duration == 0' is acctually value = 5

Could you post your data file? I'll try it.

Card Serial,Duration
e30-719-40337,7
e10-619-40215,0
e10-319-40325,0
e10-619-40269,6
e30-719-40285,0
e30-719-40485,14
e10-619-40240,0
e10-319-40325,9
e10-619-40269,0
e10-619-40268,17
e10-619-40299,0
e10-619-40278,0
e10-b18-40902,0
e10-619-40240,0
e10-619-40188,10
e10-619-40308,0
e10-619-40299,0
e10-619-40279,0
e10-619-40299,0
e10-619-40124,0
e10-619-40226,0
e30-719-40374,2
e10-b18-40928,0
e10-619-40279,0
e10-619-40229,0
e10-619-40170,0
e10-619-40308,0
e30-719-40270,0
e10-619-40215,0
e10-619-40178,3
e10-619-40203,7
e30-719-40456,9
e10-b18-40912,0
e10-619-40294,5
e10-b18-40928,0
e30-719-40288,11
e10-619-40175,0
e10-619-40206,0
e30-719-40513,0
e10-619-40226,0
e10-619-40280,0
e10-619-40174,0
e10-619-40185,13
e10-619-40223,0
e10-619-40133,11
e10-b18-40902,0
e10-619-40271,0
e10-b18-40931,0
e10-619-40130,0
e10-619-40308,0
e10-b18-40902,7
e30-719-40457,10
e10-619-40271,0
e30-719-40267,0
e10-619-40185,0
e10-619-40215,0
e10-619-40185,0
e30-719-40518,9
e30-719-40296,10
e10-619-40308,17
e10-619-40240,0
e10-619-40273,10
e10-619-40130,0
e10-619-40207,0
e10-619-40130,0
e10-619-40215,0
e10-619-40126,1
e10-619-40215,13
e30-719-40404,3
e10-619-40226,14
e10-319-40297,0
e10-619-40279,0
e10-619-40269,0
e10-619-40185,0
e10-619-40174,14
e10-619-40124,0
e10-619-40139,0
e10-619-40223,0
e10-619-40243,0
e30-719-40513,0
e10-619-40215,0
e30-719-40652,10
e10-619-40223,0
e30-719-40513,0
e10-619-40185,0
e10-619-40250,10
e10-619-40139,0
e10-619-40124,0
e30-719-40425,16
e10-619-40280,0
e10-619-40278,0
e10-619-40130,13
e10-619-40240,0
e10-619-40314,2
e10-b18-40912,5
e30-719-40446,7
e10-b18-40928,0
e10-619-40130,0
e30-719-40436,6
e10-619-40124,16
e30-719-40461,14
e10-619-40310,0
e10-619-40243,9
e10-619-40310,10
e10-619-40139,9
e10-619-40301,0
e10-619-40207,0
e10-b18-40928,0
e10-619-40175,0
e10-619-40207,9
e10-619-40268,0
e10-619-40268,0
e10-619-40206,6
e30-719-40371,0
e10-619-40299,11
e10-619-40140,0
e30-719-40308,5
e30-719-40526,6
e10-619-40240,0
e10-619-40240,10
e10-619-40198,4
e30-719-40513,0
e10-619-40203,0
e10-619-40130,0
e10-619-40301,0
e30-719-40319,11
e10-619-40270,7
e10-619-40175,0
e30-719-40475,10
e10-619-40310,0
e10-319-40297,6
e10-b18-40931,7
e10-619-40299,0
e10-619-40175,0
e10-619-40301,9
e10-619-40169,0
e10-619-40147,3
e10-619-40278,0
e30-719-40379,4
e10-619-40280,10
e10-619-40299,0
e10-b18-40928,0
e10-619-40279,10
e10-619-40174,0
e10-619-40140,10
e10-619-40279,0
e30-719-40403,1
e10-619-40170,7
e10-619-40278,12
e10-619-40289,0
e10-619-40185,0
e10-619-40187,0
e30-719-40450,3
e30-719-40267,10
e10-319-40325,0
e10-619-40279,0
e10-619-40247,9
e30-719-40290,8
e10-619-40139,0
e10-619-40247,0
e10-619-40269,0
e10-b18-40904,11
e10-319-40333,7
e10-619-40223,6
e10-619-40255,9
e30-719-40275,7
e10-b18-40941,2
e30-719-40351,1
e10-b18-40912,0
e10-619-40279,0
e10-b18-40912,0
e30-719-40586,9
e10-619-40174,0
e10-619-40136,5
e10-619-40187,5
e10-619-40289,0
e10-619-40169,8
e10-619-40215,0
e10-b18-40928,0
e10-619-40301,0
e10-619-40185,0
e10-619-40306,2
e10-b18-40928,0
e10-b18-40928,0
e10-619-40207,0
e30-719-40501,12
e10-619-40203,0
e10-619-40185,0
e10-619-40237,10
e30-719-40285,6
e10-619-40279,0
e30-719-40405,7
e10-619-40240,0
e30-719-40442,4
e10-619-40240,0
e10-619-40206,0
e10-619-40271,4
e10-619-40175,17
e10-619-40226,0
e30-719-40505,8
e10-619-40275,9
e30-719-40406,5
e10-319-40325,0
e10-b18-40928,12
e10-619-40185,0
e30-719-40513,10
e30-719-40491,5
e30-719-40285,0
e10-619-40279,0
e10-619-40310,0
e10-619-40206,0
e10-619-40185,0
e10-619-40187,0
e10-619-40141,8
e10-b18-40902,0
e10-b18-40912,0
e30-719-40513,0
e10-b18-40928,0
e10-619-40279,0
e10-319-40297,0
e10-619-40174,0
e30-719-40471,10
e30-719-40362,8
e10-619-40206,0
e10-619-40299,0
e10-619-40278,0
e10-619-40174,0
e10-619-40174,0
e30-719-40516,14
e10-b18-40887,4
e30-719-40359,8
e10-619-40279,0
e10-319-40297,0
e10-319-40297,0
e10-619-40206,0
e30-719-40265,4
e10-619-40175,0
e30-719-40521,10
e10-619-40289,6
e10-619-40130,0
e10-b18-40896,7
e10-619-40299,0
e30-719-40375,7
e10-b18-40935,7
e10-b18-40928,0
e10-619-40215,0
e10-619-40279,0
e30-719-40554,0
e10-619-40210,0
e10-619-40223,0
e30-719-40285,0
e10-619-40140,0
e30-719-40340,12

Okay, I added 'size' parameter in terms aggregation as the default size is 10(or 20?) ,which will control the number of results.

{
  "size": 0,
  "aggs": {
    "ids": {
      "terms": {
        "field": "id",
        "size":1000
          
      },
      "aggs": {
        "the_sum": {
          "sum": {
            "field": "value"
          }
        },
        "the_script_bucket": {
          "bucket_selector": {
            "buckets_path": {
              "the_sum": "the_sum.value"
            },
            "script": "params.the_sum == 0"
          }
        }
      }
    },
    "the_count_of_bucket": {
      "stats_bucket": {
        "buckets_path": "ids>the_sum"
      }
    }
  }
}

the results is 5.

{
"took": 4,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 253,
"max_score": 0,
"hits":
},
"aggregations": {
"ids": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "e10-619-40210",
"doc_count": 1,
"the_sum": {
"value": 0
}
},
{
"key": "e10-619-40229",
"doc_count": 1,
"the_sum": {
"value": 0
}
},
{
"key": "e30-719-40270",
"doc_count": 1,
"the_sum": {
"value": 0
}
},
{
"key": "e30-719-40371",
"doc_count": 1,
"the_sum": {
"value": 0
}
},
{
"key": "e30-719-40554",
"doc_count": 1,
"the_sum": {
"value": 0
}
}
]
},
"the_count_of_bucket": {
"count": 5,
"min": 0,
"max": 0,
"avg": 0,
"sum": 0
}
}
}

Hi wangqinghuan

Thank you so mush. The value is correct

But I have the next problem

Please guide for me.How to create the visualization type metric to show value from your script? I'm new for elasticsearch

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.