橡皮、老虎皮、狮子皮哪一个最不好?

用Avg bucket计算Date histogram的聚合结果不是算术平均?

Elasticsearch | 作者 fantuan | 发布于2019年07月04日 | 阅读数:1529

如下聚合请求,算出月平均销售额,月平均销售量{
  "size": 0,
  "query": {
    "bool": {
      "filter": {
        "range": {
          "orderTime": {
            "gte": "2019-06-29T14:05:33.543+08:00",
            "lte": "2019-07-04T14:05:33.543+08:00"
          }
        }
      }
    }
  },
  "aggs": {
    "sales_over_time": {
      "date_histogram": {
        "field": "orderTime",
        "interval": "month",
        "min_doc_count": 0,
        "extended_bounds": {
          "min": "2019-06-29T14:05:33.543+08:00",
          "max": "2019-07-04T14:05:33.543+08:00"
        }
      },
      "aggs": {
        "salesorderline": {
          "nested": {
            "path": "salesOrderLines"
          },
          "aggs": {
            "quantity": {
              "sum": {
                "field": "salesOrderLines.quantity"
              }
            },
            "sales": {
              "sum": {
                "field": "salesOrderLines.grossAmount"
            }
          }
        }
      }
    }
  },
  "avg_monthly_sales": {
    "avg_bucket": {
      "buckets_path": "sales_over_time>salesorderline>sales"
    }
  },
  "avg_monthly_quantity": {
    "avg_bucket": {
      "buckets_path": "sales_over_time>salesorderline>quantity"
    }
  }
  }
}
 
返回结果:
  "aggregations": {
    "sales_over_time": {
      "buckets": [
        {
          "key_as_string": "2019-06-01T00:00:00Z",
          "key": 1559347200000,
          "doc_count": 0,
          "salesorderline": {
            "doc_count": 0,
            "quantity": {
              "value": 0
            },
            "sales": {
              "value": 0
            }
          }
        },
        {
          "key_as_string": "2019-07-01T00:00:00Z",
          "key": 1561939200000,
          "doc_count": 17,
          "salesorderline": {
            "doc_count": 18,
            "quantity": {
              "value": 13292
            },
            "sales": {
              "value": 24015629
            }
          }
        }
      ]
    },
    "avg_monthly_sales": {
      "value": 24015629
    },
    "avg_monthly_quantity": {
      "value": 13292
    }
  }
 
avg算术平均不应该是24015629+0/2 = 12007814.5 吗?

已邀请:

要回复问题请先登录注册