elasticsearch的group by分组和sum求和

这篇具有很好参考价值的文章主要介绍了elasticsearch的group by分组和sum求和。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在使用es查询某个字段在特定查询条件下的某个字段的求和时,忘记了query语句是怎么写的,简单记录一下,方便自己和他人查阅。

一 什么是elasticsearch?

elasticsearch是一个分布式的使用 REST 接口的搜索引擎,简称为ES,它是面向文档的,可以存储整个对象或文档。

二:elasticsearch的几种操作

1 对某个字段求和,相当于sql语句的:

select sum(字段名) from table where 条件1  and 条件2
#对某个字段求和操作

{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "条件1": {
              "gte": "2022-05-08",
              "lte": "2022-05-14"
            }
          }
        },
        {
          "match": {
            "条件1": "***"
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "from": 0,
  "size": 0,
  "sort": [],
  "aggs": {
    "求和后叫的字段名": {
      "sum": {
        "field": "求和字段"
      }
    }
  }
}

2 根据多个字段进行分组,相当于sql语句的:

select * from table where 条件1 and 条件2 group by XXX,YYY
#根据多个字段进行聚合

{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "条件1": {
              "gte": "2022-05-08",
              "lte": "2022-05-08"
            }
          }
        },
        {
          "match": {
            "条件2": "J00371"
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "from": 0,
  "size": 0,
  "sort": [],
  "aggregations": {
    "分组字段1": {
      "terms": {
        "field": "es索引中的字段1"
      },
      "aggregations": {
        "分组字段2": {
          "terms": {
            "field": "es索引中的字段2"
          }
        }
      }
    }
  }
}

3、向es中插入数据,相当于sql的:

insert into table (字段名1,字段名2,…………) VALUES (字段1的值,字段2的值,……);
PUT /索引名/type/8000
{
    "filed1": "value1",
    "filed2": "value2",
    "filed3": "value3",
    ………………
}

 

4、删除es的某复合条件的记录,相当于sql的:文章来源地址https://www.toymoban.com/news/detail-524018.html

delete from table where condition1 and condition2
{
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "condition1": "condition1"
                    }
                }
            ],
            "must_not": [],
            "should": []
        }
    }
}

到了这里,关于elasticsearch的group by分组和sum求和的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Sql group by 分组取时间最新的一条数据

    1.取时间最新的记录 不分组有重复(多条CreateTime一样的都是最新记录) 2.分组后取时间最新的记录 3.如果Id是uuid类型无法使用max(id)的解决办法(使用开窗函数)

    2024年02月11日
    浏览(54)
  • django 中group by 以及sum count

    原生SQL group by … sum group by …count https://docs.djangoproject.com/en/4.2/topics/db/aggregation/

    2024年01月23日
    浏览(46)
  • mysql通过group by分组取最大时间对应的数据,提供两种有效方法。

    1、项目记录表project_record的结构和数据如下: 以下为项目记录表 project_record 的所有数据。project_id为项目Id,on_project_time为上项目时间。(每一条数据代表着上某个项目(project_id)的时间(on_project_time)记录) 2、我们的需求是:取出每个项目中最大上项目时间对应的那条数据。

    2023年04月08日
    浏览(42)
  • Stream流实践(五):使用group by然后紧跟sum sort等操作

    本文会用几个例子去讲解Stream流 group by基本用法,以及group by分组之后对于分组数据的汇总、排序等操作 1.1 Group by 集合,并展示最后的汇总数据 1.2 Group by 集合,并且将他按顺序加入到新Map中去 2.1 对象的基本处理 2.2 Collectors.mapping 的例子

    2024年02月14日
    浏览(43)
  • MySQL查询分组Group By原理分析

    日常开发中,我们经常会使用到group by: 你是否知道group by的工作原理呢? group by和having有什么区别呢? group by的优化思路是怎样的呢? 使用group by有哪些需要注意的问题呢? 使用group by的简单例子 group by 工作原理 group by + where 和 having的区别 group by 优化思路 group by 使用注意

    2023年04月16日
    浏览(48)
  • 【已解决】Mybatis 实现 Group By 动态分组查询

    🎉工作中遇到这样一个需求场景:实现一个统计查询,要求可以根据用户在前端界面筛选的字段进行动态地分组统计。也就是说, 后端在实现分组查询的时候,Group By 的字段是不确定的 ,可能是一个字段、多个字段或者不进行分组查询,这都是由用户在前端决定的。 💡这

    2024年02月11日
    浏览(37)
  • MySQL修炼手册4:分组与聚合:GROUP BY与HAVING的应用

    MySQL数据库的强大功能为我们提供了丰富的数据处理工具,其中GROUP BY与HAVING的应用使得数据的分组与聚合变得更加灵活和高效。在本篇博客中,我们将深入研究GROUP BY与HAVING的基础知识,并通过实际案例,展示它们在数据分析中的强大威力。 首先,为了更好地演示GROUP BY与

    2024年02月01日
    浏览(93)
  • 【postgresql 基础入门】分组查询 group by 子句的写法,分组条件过滤having子句的写法,多列的分组以及与join联合的多表分组

    ​ 专栏内容 : postgresql内核源码分析 手写数据库toadb 并发编程 个人主页 :我的主页 管理社区 :开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 本文主要分享在postgresql 数据库中对查询结果进行分组group by,以及对分组进行条件过滤having,同时对它

    2024年04月11日
    浏览(50)
  • ES多个字段group by操作

    以下操作基于es6.8 这种方式查询出来的数据不是扁平化的,而是一层套一层的,比如字段一套字段二。 结果,one下面的buckets里面是two,每个two下面有自己的bukets,就是two的值和count。 封装一个通用的聚合查询并映射到java类中   这种方式查出来的数据更扁平化,容易被接受

    2024年02月15日
    浏览(38)
  • 玩转SQL语句之group by 多字段分组查询与having子句,一篇解决你的疑惑!

    分组,顾名思义,分成小组。简而言之就是就是把相同的数据分到一个组。 如下表(表名gb),里面有16条数据,前8条是狗狗,后8条是猫猫. 现在对name这个列进行分组查询 得到结果如下: 我们发现他把原始表分为了两个小组,狗狗小组和猫猫小组。从这可以看出分组查询就

    2023年04月18日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包