对唯一值执行汇总

时间:2019-03-29 12:21:43

标签: elasticsearch

我有一个假设的场景-一个电子邮件不是唯一的数据库,其中一个用户使用同一封电子邮件注册了两次。我想对唯一结果执行聚合,因此在MySQL中,我将执行以下类似操作:

SELECT count(*) as total_users, avg(age) as average_age
FROM users
GROUP BY email

在Elastic中可以做同样的事情吗?

我知道terms,但是terms会将用户归入返回的数据集中,并对每个分组应用汇总,即:

"aggregations" : {
    "average_age" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [
        {
          "key" : "email@domain.com",
          "doc_count" : 2,
          "average_age" : {
            "value" : 27
          }
        }
      ]
     }
}

我想要的是分组数据的单个结果,即:

"aggregations" : {
    "average_age" : {
        "average_age" : {
            "value" : 33
        }
    }
}

0 个答案:

没有答案