如何用ElasticSearch实现下面的SQL

select countryName, count( distinct(countryId) ) as findCount   from city group by countryName having findCount > 1
请问如何用es的agg实现上面的SQL,如果能,请给个例子,谢谢
已邀请:

martindu - 搜披露创始人

赞同来自:

试一试terms aggregation内嵌一个cardinality aggregation,然后外层terms设置min_doc_count为2
 
参考https://www.elastic.co/guide/e ... .html

Todo - 程序猿

赞同来自:

楼主问题解决了吗?能否分享下,这个问题困扰了好久,毫无头绪!

szwx855 - Easy Simple

赞同来自:

{
  "size": 0,
  "aggs": {
    "all": {
      "terms": {
        "field": "cfg_id",
        "min_doc_count": 2
      },
      "aggs": {
        "count(distinct)": { 
          "cardinality": {
            "field": "name"
          }
        }
      }
    }
  }
}

要回复问题请先登录注册