Average bucket aggregationedit

A sibling pipeline aggregation which calculates the mean value of a specified metric in a sibling aggregation. The specified metric must be numeric and the sibling aggregation must be a multi-bucket aggregation.

Syntaxedit

"avg_bucket": {
  "buckets_path": "sales_per_month>sales",
  "gap_policy": "skip",
  "format": "#,##0.00;(#,##0.00)"
}

Parametersedit

buckets_path
(Required, string) Path to the buckets to average. For syntax, see buckets_path Syntax.
gap_policy
(Optional, string) Policy to apply when gaps are found in the data. For valid values, see Dealing with gaps in the data. Defaults to skip.
format
(Optional, string) DecimalFormat pattern for the output value. If specified, the formatted value is returned in the aggregation’s value_as_string property.

Response bodyedit

value
(float) Mean average value for the metric specified in buckets_path.
value_as_string
(string) Formatted output value for the aggregation. This property is only provided if a format is specified in the request.

Exampleedit

The following avg_monthly_sales aggregation uses avg_bucket to calculate average sales per month:

POST _search
{
  "size": 0,
  "aggs": {
    "sales_per_month": {
      "date_histogram": {
        "field": "date",
        "calendar_interval": "month"
      },
      "aggs": {
        "sales": {
          "sum": {
            "field": "price"
          }
        }
      }
    },
    "avg_monthly_sales": {
// tag::avg-bucket-agg-syntax[]               
      "avg_bucket": {
        "buckets_path": "sales_per_month>sales",
        "gap_policy": "skip",
        "format": "#,##0.00;(#,##0.00)"
      }
// end::avg-bucket-agg-syntax[]               
    }
  }
}

Start of the avg_bucket configuration. Comment is not part of the example.

End of the avg_bucket configuration. Comment is not part of the example.

The request returns the following response:

{
  "took": 11,
  "timed_out": false,
  "_shards": ...,
  "hits": ...,
  "aggregations": {
    "sales_per_month": {
      "buckets": [
        {
          "key_as_string": "2015/01/01 00:00:00",
          "key": 1420070400000,
          "doc_count": 3,
          "sales": {
            "value": 550.0
          }
        },
        {
          "key_as_string": "2015/02/01 00:00:00",
          "key": 1422748800000,
          "doc_count": 2,
          "sales": {
            "value": 60.0
          }
        },
        {
          "key_as_string": "2015/03/01 00:00:00",
          "key": 1425168000000,
          "doc_count": 2,
          "sales": {
            "value": 375.0
          }
        }
      ]
    },
    "avg_monthly_sales": {
      "value": 328.33333333333333,
      "value_as_string": "328.33"
    }
  }
}