elasticsearch 获取平均子聚合,elasticsearch,search,lucene,elasticsearch,Search,Lucene" /> elasticsearch 获取平均子聚合,elasticsearch,search,lucene,elasticsearch,Search,Lucene" />

elasticsearch 获取平均子聚合

elasticsearch 获取平均子聚合,elasticsearch,search,lucene,elasticsearch,Search,Lucene,我想得到一个子集合的平均值。例如,我有每个分行的每日利润。我想把它们加起来,这样我就可以得到每天的总利润。然后我想得到每日利润的月平均值或周平均值。到目前为止,我已经做到了这一点 { "size" : 0, "aggs" : { "group_by_month": { "date_histogram": { "field": "Profit_Day", "interval": "month",

我想得到一个子集合的平均值。例如,我有每个分行的每日利润。我想把它们加起来,这样我就可以得到每天的总利润。然后我想得到每日利润的月平均值或周平均值。到目前为止,我已经做到了这一点

{
    "size" : 0,
    "aggs" : {
        "group_by_month": {
          "date_histogram": {
            "field": "Profit_Day",
            "interval": "month",
            "format" : "MM-yyyy"
          },
          "aggs": {
                "avgProf": {
                    "avg": {
                        "field": "ProfitValue"
                    }
                },
                "group_by_day": {
                    "date_histogram": {
                        "field": "Profit_Day",
                        "interval": "day",
                        "format" : "yyyy-MM-dd"
                    },
                    "aggs": {
                        "prof": {
                            "sum": {
                                "field": "ProfitValue"
                            }
                        }
                    }
                }
            }


        }
    }
}
问题是我得到的是一个正确的每日金额 但不是得到每日总和的月平均值 我从每个分公司每月平均得到利润

您需要使用

查询:

GET sales1/_search
{
  "size": 0,
  "aggs": {
    "group_by_month": {
      "date_histogram": {
        "field": "proffit_day",
        "interval": "month",
        "format": "MM-yyyy"
      },
      "aggs": {
        "group_by_day": {
          "date_histogram": {
            "field": "proffit_day",
            "interval": "day",
            "format": "yyyy-MM-dd"
          },
          "aggs": {
            "prof": {
              "sum": {
                "field": "proffit_value"
              }
            }
          }
        },
        "avg_monthly_sales": {
          "avg_bucket": {
            "buckets_path": "group_by_day>prof"
          }
        }
      }
    }
  }
}
答复:

{
    "group_by_month" : {
      "buckets" : [
        {
          "key_as_string" : "09-2019",
          "key" : 1567296000000,
          "doc_count" : 2,
          "group_by_day" : {
            "buckets" : [
              {
                "key_as_string" : "2019-09-25",
                "key" : 1569369600000,
                "doc_count" : 2,
                "prof" : {
                  "value" : 15.0
                }
              }
            ]
          },
          "avg_monthly_sales" : {
            "value" : 15.0
          }
        },
        {
          "key_as_string" : "10-2019",
          "key" : 1569888000000,
          "doc_count" : 2,
          "group_by_day" : {
            "buckets" : [
              {
                "key_as_string" : "2019-10-01",
                "key" : 1569888000000,
                "doc_count" : 1,
                "prof" : {
                  "value" : 10.0
                }
              },
              {
                "key_as_string" : "2019-10-02",
                "key" : 1569974400000,
                "doc_count" : 0,
                "prof" : {
                  "value" : 0.0
                }
              },
              {
                "key_as_string" : "2019-10-03",
                "key" : 1570060800000,
                "doc_count" : 1,
                "prof" : {
                  "value" : 15.0
                }
              }
            ]
          },
          "avg_monthly_sales" : {
            "value" : 12.5
          }
        }
      ]
    }
  }
}
你需要使用

查询:

GET sales1/_search
{
  "size": 0,
  "aggs": {
    "group_by_month": {
      "date_histogram": {
        "field": "proffit_day",
        "interval": "month",
        "format": "MM-yyyy"
      },
      "aggs": {
        "group_by_day": {
          "date_histogram": {
            "field": "proffit_day",
            "interval": "day",
            "format": "yyyy-MM-dd"
          },
          "aggs": {
            "prof": {
              "sum": {
                "field": "proffit_value"
              }
            }
          }
        },
        "avg_monthly_sales": {
          "avg_bucket": {
            "buckets_path": "group_by_day>prof"
          }
        }
      }
    }
  }
}
答复:

{
    "group_by_month" : {
      "buckets" : [
        {
          "key_as_string" : "09-2019",
          "key" : 1567296000000,
          "doc_count" : 2,
          "group_by_day" : {
            "buckets" : [
              {
                "key_as_string" : "2019-09-25",
                "key" : 1569369600000,
                "doc_count" : 2,
                "prof" : {
                  "value" : 15.0
                }
              }
            ]
          },
          "avg_monthly_sales" : {
            "value" : 15.0
          }
        },
        {
          "key_as_string" : "10-2019",
          "key" : 1569888000000,
          "doc_count" : 2,
          "group_by_day" : {
            "buckets" : [
              {
                "key_as_string" : "2019-10-01",
                "key" : 1569888000000,
                "doc_count" : 1,
                "prof" : {
                  "value" : 10.0
                }
              },
              {
                "key_as_string" : "2019-10-02",
                "key" : 1569974400000,
                "doc_count" : 0,
                "prof" : {
                  "value" : 0.0
                }
              },
              {
                "key_as_string" : "2019-10-03",
                "key" : 1570060800000,
                "doc_count" : 1,
                "prof" : {
                  "value" : 15.0
                }
              }
            ]
          },
          "avg_monthly_sales" : {
            "value" : 12.5
          }
        }
      ]
    }
  }
}