# 总和桶聚合(Sum Bucket Aggregation)

> 警告:此功能是实验性的，可能会在将来的版本中完全更改或删除。Elastic将采取最大的努力来解决此问题，但实验功能不受SLA官方功能的支持。

总和桶聚合用于计算一组聚合创建的所有桶中指定度量的和。指定的度量必须是数字型而且这个组聚合必须是多桶聚合。

## 语法 <a href="#sumbucketaggregation-yu-fa" id="sumbucketaggregation-yu-fa"></a>

sum\_bucket聚合结构如下：

```
{
    "sum_bucket": {
        "buckets_path": "the_sum"
    }
}
```

`sum_bucket`参数如下：

| 参数名称          | 描述                                                                                                                                                                                                                                                                                          | 是否必填 | 默认值  |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ---- |
| buckets\_path | 想要计算总和的桶路径，点击[the section called “`buckets_path` Syntax](https://www.elastic.co/guide/en/elasticsearch/reference/5.4/search-aggregations-pipeline.html#buckets-path-syntax)[edit](https://github.com/elastic/elasticsearch/edit/5.4/docs/reference/aggregations/pipeline.asciidoc)”查看更多细节   | 必填   |      |
| gap\_policy   | 当数据缺口出现时采用的策略，点击[the section called “Dealing with gaps in the data](https://www.elastic.co/guide/en/elasticsearch/reference/5.4/search-aggregations-pipeline.html#gap-policy)[edit](https://github.com/elastic/elasticsearch/edit/5.4/docs/reference/aggregations/pipeline.asciidoc)”查看更多细节 | 可选   | skip |
| format        | 用于规范聚合输出值的格式                                                                                                                                                                                                                                                                                | 可选   | null |

以下代码段计算所有月销售总额的总和：

```
POST /sales/_search
{
    "size": 0,
    "aggs" : {
        "sales_per_month" : {
            "date_histogram" : {
                "field" : "date",
                "interval" : "month"
            },
            "aggs": {
                "sales": {
                    "sum": {
                        "field": "price"
                    }
                }
            }
        },
        "sum_monthly_sales": {
            "sum_bucket": {
                "buckets_path": "sales_per_month>sales" #1
            }
        }
    }
}
```

| 1 | buckets\_path指示这个sum\_bucket聚合是要得到sales\_per\_month日期直方图中的sales聚合sum的总和 |
| - | ----------------------------------------------------------------------- |

可能得到如下的响应：

```
{
   "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
               }
            }
         ]
      },
      "sum_monthly_sales": {
          "value": 985.0
      }
   }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://xiaoxiami.gitbook.io/elasticsearch/ji-chu/36aggregationsju-he-fen-679029/363guan-dao-ju-540828-pipeline-aggregations/zong-he-tong-ju-540828-sum-bucket-aggregation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
