es嵌套聚合dsl(求均值,求和)

【1】根据客户号分组后求均值和求和 

// dsl
{
    "_source":["RCRD_ID", "STATE", "BUSI_CODE"]
	, "query":{
		"bool":{
			"filter":[
				{
					"term":{
						"STATE":"PDOS"
					}				
				}
				
			]
		}					
	}
    , "aggs": {
        "by_loans":{
            "nested":{
                "path":"LOANS"
            }, 
            "aggs":{
                "group_by_cust_num":{
                    "terms":{
                        "field":"LOANS.CUST_NUM"
                    } 
                    , "aggs":{
                        "by_avg_loan_bal_sum":{
                            "avg":{
                                "field":"LOANS.OVD_MONEY_SUM"
                            }   
                        }
                        , "by_sum_loan_bal_sum":{
                            "sum":{
                                "field":"LOANS.OVD_MONEY_SUM"
                            }   
                        }
                    }							
                }
               

            }
        }
    }
}
// 结果
{
    "took": 8,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 3,
            "relation": "eq"
        },
        "max_score": 0.0,
        "hits": [
            {
                "_index": "pdi_cust",
                "_type": "_doc",
                "_id": "tr_rd_01",
                "_score": 0.0,
                "_source": {
                    "RCRD_ID": "tr_rd_01",
                    "STATE": "PDOS",
                    "BUSI_CODE": "pdi"
                }
            },
            {
                "_index": "pdi_cust",
                "_type": "_doc",
                "_id": "tr_rd_02",
                "_score": 0.0,
                "_source": {
                    "RCRD_ID": "tr_rd_02",
                    "STATE": "PDOS",
                    "BUSI_CODE": "pdi"
                }
            },
            {
                "_index": "pdi_cust",
                "_type": "_doc",
                "_id": "tr_rd_03",
                "_score": 0.0,
                "_source": {
                    "RCRD_ID": "tr_rd_03",
                    "STATE": "PDOS",
                    "BUSI_CODE": "pdi"
                }
            }
        ]
    },
    "aggregations": {
        "by_loans": {
            "doc_count": 6,
            "group_by_cust_num": {
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 0,
                "buckets": [
                    {
                        "key": "CUST_NUM_01",
                        "doc_count": 2,
                        "by_sum_loan_bal_sum": {
                            "value": 3333.0
                        },
                        "by_avg_loan_bal_sum": {
                            "value": 1666.5
                        }
                    },
                    {
                        "key": "CUST_NUM_02",
                        "doc_count": 2,
                        "by_sum_loan_bal_sum": {
                            "value": 2227.0
                        },
                        "by_avg_loan_bal_sum": {
                            "value": 1113.5
                        }
                    },
                    {
                        "key": "CUST_NUM_03",
                        "doc_count": 2,
                        "by_sum_loan_bal_sum": {
                            "value": 2231.0
                        },
                        "by_avg_loan_bal_sum": {
                            "value": 1115.5
                        }
                    }
                ]
            }
        }
    }
}

【2】求整个索引的均值和总和

// dsl
{
    "_source":["RCRD_ID", "STATE", "BUSI_CODE"]
	, "query":{
		"bool":{
			"filter":[
				{
					"term":{
						"STATE":"PDOS"
					}				
				}
				
			]
		}					
	}
    , "aggs": {
        "by_loans":{
            "nested":{
                "path":"LOANS"
            }, 
            "aggs":{
                "by_avg_loan_bal_sum":{
                            "avg":{
                                "field":"LOANS.OVD_MONEY_SUM"
                            }   
                        }
                        , "by_sum_loan_bal_sum":{
                            "sum":{
                                "field":"LOANS.OVD_MONEY_SUM"
                            }   
                        }
            }
        }
    }
}
// 结果
{
    "took": 12,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 3,
            "relation": "eq"
        },
        "max_score": 0.0,
        "hits": [
            {
                "_index": "pdi_cust",
                "_type": "_doc",
                "_id": "tr_rd_01",
                "_score": 0.0,
                "_source": {
                    "RCRD_ID": "tr_rd_01",
                    "STATE": "PDOS",
                    "BUSI_CODE": "pdi"
                }
            },
            {
                "_index": "pdi_cust",
                "_type": "_doc",
                "_id": "tr_rd_02",
                "_score": 0.0,
                "_source": {
                    "RCRD_ID": "tr_rd_02",
                    "STATE": "PDOS",
                    "BUSI_CODE": "pdi"
                }
            },
            {
                "_index": "pdi_cust",
                "_type": "_doc",
                "_id": "tr_rd_03",
                "_score": 0.0,
                "_source": {
                    "RCRD_ID": "tr_rd_03",
                    "STATE": "PDOS",
                    "BUSI_CODE": "pdi"
                }
            }
        ]
    },
    "aggregations": {
        "by_loans": {
            "doc_count": 6,
            "by_sum_loan_bal_sum": {
                "value": 7791.0
            },
            "by_avg_loan_bal_sum": {
                "value": 1298.5
            }
        }
    }
}

 

 

你可能感兴趣的:(es6)