相关疑难解决方法(0)

像GROUP BY和HAVING这样的SQL

我想得到满足一定条件的群体数量.在SQL术语中,我想在Elasticsearch中执行以下操作.

SELECT COUNT(*) FROM
(
   SELECT
    senderResellerId,
    SUM(requestAmountValue) AS t_amount
   FROM
    transactions
   GROUP BY
    senderResellerId
   HAVING
    t_amount > 10000 ) AS dum;
Run Code Online (Sandbox Code Playgroud)

到目前为止,我可以通过term Aggsel对senderResellerId进行分组.但是当我应用过滤器时,它不能按预期工作.

弹性请求

{
  "aggregations": {
    "reseller_sale_sum": {
      "aggs": {
        "sales": {
          "aggregations": {
            "reseller_sale": {
              "sum": {
                "field": "requestAmountValue"
              }
            }
          }, 
          "filter": {
            "range": {
              "reseller_sale": { 
                "gte": 10000
              }
            }
          }
        }
      }, 
      "terms": {
        "field": "senderResellerId", 
        "order": {
          "sales>reseller_sale": "desc"
        }, 
        "size": 5
      }
    }
  }, 
  "ext": {}, 
  "query": {  "match_all": {} }, 
  "size": …
Run Code Online (Sandbox Code Playgroud)

elasticsearch elasticsearch-5

13
推荐指数
1
解决办法
1万
查看次数

标签 统计

elasticsearch ×1

elasticsearch-5 ×1