es7分组时,对某个字段求和
时间: 2024-05-06 21:17:18 浏览: 77
在ES7中,可以使用聚合(Aggregation)功能对数据进行分组和计算。如果需要对某个字段进行求和,可以使用Sum Aggregation。比如,假设我们有一个名为“sales”的索引,其中包含以下文档:
```
{
"product_name": "iPhone",
"price": 999,
"quantity": 10
}
{
"product_name": "MacBook Pro",
"price": 1999,
"quantity": 5
}
{
"product_name": "iPad",
"price": 799,
"quantity": 20
}
```
现在我们想按产品名称(product_name)进行分组,并对每个分组中的数量(quantity)字段进行求和。可以使用以下代码:
```
GET /sales/_search
{
"size": 0,
"aggs": {
"products": {
"terms": {
"field": "product_name"
},
"aggs": {
"total_quantity": {
"sum": {
"field": "quantity"
}
}
}
}
}
}
```
这个查询将返回每个产品名称及其总数量。结果如下所示:
```
{
"aggregations" : {
"products" : {
"buckets" : [
{
"key" : "iPhone",
"doc_count" : 1,
"total_quantity" : {
"value" : 10.0
}
},
{
"key" : "iPad",
"doc_count" : 1,
"total_quantity" : {
"value" : 20.0
}
},
{
"key" : "MacBook Pro",
"doc_count" : 1,
"total_quantity" : {
"value" : 5.0
}
}
]
}
}
}
```
可以看到,iPhone的总数量为10,iPad的总数量为20,MacBook Pro的总数量为5。
阅读全文
相关推荐

















