Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Aggregations ›Pipeline aggregations

Average bucket aggregation

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.

Syntax

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

Parameters

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 body

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.

Example

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"
    }
  }
}

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-aggregations-pipeline-avg-bucket-aggregation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API