You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch查询需求:按分钟区间计算指定条件的平均值

解决方法

你只需要在聚合流程里先筛选出condition为"B"的数据,再进行平均值计算就可以了。可以通过添加filter聚合来实现这个需求,修改后的完整查询语句如下:

{
  "aggs": {
    "student_data": {
      "date_histogram": {
        "field": "@timestamp",
        "calendar_interval": "minute"
      },
      "aggs": {
        "filter_condition_b": {
          "filter": {
            "term": {
              "condition": "B"
            }
          },
          "aggs": {
            "user_avg": {
              "avg": {
                "field": "value"
              }
            }
          }
        }
      }
    }
  }
}

关键修改说明:

  • 新增了filter_condition_b这个filter聚合,它会先把所有condition字段值为"B"的文档筛选出来
  • 把原来的user_avg平均值聚合放到这个filter聚合内部,这样计算出的平均值就只会基于符合条件的数据
  • 外层的date_histogram依然会按分钟对时间进行分组,最终结果会按分钟返回每个时间桶内condition为B的value平均值

内容的提问来源于stack exchange,提问作者Harmeet Kaur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 09:32:27