国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ES聚合分頁(group by分組后分頁)

這篇具有很好參考價值的文章主要介紹了ES聚合分頁(group by分組后分頁)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

ES實現(xiàn)類似sql的group by后如何分頁?

{
    "query": {
        ...... //搜索條件
    },
    "aggs": {
        "count": {   // COUNT(*),統(tǒng)計GROUP BY后的總數(shù)
            "cardinality": {
                "field": "goods_id"    // 因為我這里GROUP BY的字段是goods_id,所以就用goods_id來計數(shù)了
            }
        },
        "goods_id": {
            "terms": {
                "field": "goods_id",    // 選擇GROUP BY的字段
                "size": 20    // 取出20條GROUP BY的數(shù)據(jù)。數(shù)量應(yīng)設(shè)置為sql中offset+limit的數(shù)量。注:其實es聚合操作不是很支持分頁,于是只能先將數(shù)據(jù)取出,再對其做分頁操作,可想而知頁數(shù)越往后效率越低
            },
            "aggs": {
                "group": {
                    "top_hits": {
                        "sort": [
                            {
                                "stock_num": {
                                    "order": "desc"    // GROUP BY的數(shù)據(jù)如何排序,這里是根據(jù)stock_num 降序排列
                                }
                            }
                        ],
                        "_source": {    // 對應(yīng)SQL的SELECT 
                            "includes": [
                                "goods_no"    // SELECT的列
                            ]
                        },
                        "size": 1    // es聚合時需要指定返回幾條數(shù)據(jù)(即返回幾條同一個goods_id的數(shù)據(jù))我們做GROUP BY操作就只要寫1就完事了
                    }
                },
                "r_bucket_sort": {    // 分頁操作
                    "bucket_sort": {
                        "sort": [],
                        "from": 0,   // 對上面取出的20條數(shù)據(jù)分頁,等價于SQL的OFFSET
                        "size": 10   // SQL的LIMIT
                    }
                }
            }
        }
    },
    "size": 0,   // 因為是做聚合操作,所以直接無視query篩選出的數(shù)據(jù)
    "from": 0
}

案例:統(tǒng)計業(yè)務(wù)應(yīng)用流量數(shù)據(jù)文章來源地址http://www.zghlxwxcb.cn/news/detail-507284.html

curl -XGET /action*/_search
{
  "from": 0,
  "size": 0,
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "occurredAt": {
              "gte": "1659316790000",
              "lt": "1659323990000"
            }
          }
        }
      ],
      "must": [
        {
          "term": {
            "subtype.keyword": {
              "value": "/datatrans/traffic"
            }
          }
        }
      ]
    }
  },
  "aggs": {
    "count": {
      "cardinality": {
        "field": "applicationType.keyword"
      }
    },
    "group_by_app_type": {
      "terms": {
        "field": "applicationType.keyword",
        "min_doc_count": 1,
        "shard_min_doc_count": 0,
        "show_term_doc_count_error": false,
        "size": 40,
        "order": [
          {
            "_count": "desc"
          }
        ]
      },
      "aggs": {
        "sum_bytes_sent": {
          "sum": {
            "field": "bytesSent"
          }
        },
        "sum_bytes_received": {
          "sum": {
            "field": "bytesReceived"
          }
        },
        "sum_total_flow": {
          "sum": {
            "script": {
              "source": "(doc[\"bytesSent\"].value + doc[\"bytesReceived\"].value)"
            }
          }
        },
        "max_date": {
          "max": {
            "field": "occurredAt"
          }
        },
        "min_date": {
          "min": {
            "field": "occurredAt"
          }
        },
        "bucket_filed": {
          "bucket_sort": {
            "sort": [
              {
                "sum_bytes_sent": {
                  "order": "asc"
                }
              }
            ],
            "from": 0,
            "size": 40
          }
        }
      }
    }
  }
}'

到了這里,關(guān)于ES聚合分頁(group by分組后分頁)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 聚合函數(shù)+group by

    常用的聚合函數(shù)有COUNT()、AVG()、SUM()、MAX()、MIN()。 COUNT()函數(shù):統(tǒng)計數(shù)據(jù)表中包含的記錄行的總數(shù),或者根據(jù)查詢結(jié)果返回列中包含的數(shù)據(jù)行數(shù)。 COUNT(*)計算表中總的行數(shù),不管某列是否有數(shù)值或者為空值。 COUNT(字段名)計算指定列下總的行數(shù),計算時將忽略空值的行。 對于

    2024年02月02日
    瀏覽(21)
  • group by進行分組時查詢數(shù)據(jù)

    group by進行分組時查詢數(shù)據(jù)需要注意:? select后的字段: 要么就要包含在Group By語句的后面,作為分組的依據(jù); ? ? ? ?要么就要被包含在聚合函數(shù)中。 錯誤: SELECT name, salary FROM student GROUP BY name ? ? ? ?select 后的字段 salary 不在 group by 后面,所以salary無法顯示全部值。 正確

    2024年02月11日
    瀏覽(17)
  • MySQL查詢分組Group By原理分析

    MySQL查詢分組Group By原理分析

    日常開發(fā)中,我們經(jīng)常會使用到group by: 你是否知道group by的工作原理呢? group by和having有什么區(qū)別呢? group by的優(yōu)化思路是怎樣的呢? 使用group by有哪些需要注意的問題呢? 使用group by的簡單例子 group by 工作原理 group by + where 和 having的區(qū)別 group by 優(yōu)化思路 group by 使用注意

    2023年04月16日
    瀏覽(22)
  • elasticsearch的group by分組和sum求和

    最近在使用es查詢某個字段在特定查詢條件下的某個字段的求和時,忘記了query語句是怎么寫的,簡單記錄一下,方便自己和他人查閱。 一 什么是elasticsearch? elasticsearch是一個分布式的使用 REST 接口的搜索引擎,簡稱為ES,它是面向文檔的,可以存儲整個對象或文檔。 二:

    2024年02月12日
    瀏覽(16)
  • Sql group by 分組取時間最新的一條數(shù)據(jù)

    Sql group by 分組取時間最新的一條數(shù)據(jù)

    1.取時間最新的記錄 不分組有重復(fù)(多條CreateTime一樣的都是最新記錄) 2.分組后取時間最新的記錄 3.如果Id是uuid類型無法使用max(id)的解決辦法(使用開窗函數(shù))

    2024年02月11日
    瀏覽(22)
  • 【算法】在vue3的ts代碼中分組group聚合源數(shù)據(jù)列表

    有一個IListany()對象列表, 示例數(shù)據(jù)為[{id:\\\'1\\\',fieldName:\\\'field1\\\',value:\\\'1\\\'},{id:\\\'1\\\',fieldName:\\\'field2\\\',value:\\\'2\\\'},{id:\\\'2\\\',fieldName:\\\'field1\\\',value:\\\'1\\\'},{id:\\\'2\\\',fieldName:\\\'field2\\\',value:\\\'2\\\'}] 那么在ts中將它們根據(jù)id分組構(gòu)建為兩個dynamicObject,類推,如果id有n個,那需要自動構(gòu)建n個dynamicObject。 算法實現(xiàn): 在以

    2024年02月11日
    瀏覽(29)
  • Hive:聚合函數(shù)、GROUP BY、ORDER BY、LIMIT、執(zhí)行順序和JOIN、函數(shù)

    Hive:聚合函數(shù)、GROUP BY、ORDER BY、LIMIT、執(zhí)行順序和JOIN、函數(shù)

    1.聚合函數(shù) 常見的聚合函數(shù): Count、Sum、Max、Min和Avg 特點:不管原始數(shù)據(jù)多少條,聚合之后只有一條 Count(column)返回某列的行數(shù),不包括NULL值 2.GROUP BY select中的字段要么是GROUP BY字段,要么是被聚合函數(shù)應(yīng)用的字段 2.HAVING WHERE中無法出現(xiàn)聚合函數(shù),所以有了HAVING WHERE是分組前

    2024年02月07日
    瀏覽(14)
  • PostgreSQL數(shù)據(jù)庫以任意時間間隔聚合查詢group by

    PostgreSQL數(shù)據(jù)庫以任意時間間隔聚合查詢group by

    我們做的是智慧交通信控平臺,需要將實時采集到的交通大數(shù)據(jù)(信號機燈態(tài)、卡口過車、雷達數(shù)據(jù)等)全部入庫,按照時間順序存儲 然后根據(jù)原始數(shù)據(jù),再計算出一些交通評價指標,存儲到數(shù)據(jù)庫,供后續(xù)聚合查詢和分析統(tǒng)計 前端設(shè)備(信號機、雷達、卡口等)上報原始

    2024年02月02日
    瀏覽(94)
  • mysql通過group by分組取最大時間對應(yīng)的數(shù)據(jù),提供兩種有效方法。

    mysql通過group by分組取最大時間對應(yīng)的數(shù)據(jù),提供兩種有效方法。

    1、項目記錄表project_record的結(jié)構(gòu)和數(shù)據(jù)如下: 以下為項目記錄表 project_record 的所有數(shù)據(jù)。project_id為項目Id,on_project_time為上項目時間。(每一條數(shù)據(jù)代表著上某個項目(project_id)的時間(on_project_time)記錄) 2、我們的需求是:取出每個項目中最大上項目時間對應(yīng)的那條數(shù)據(jù)。

    2023年04月08日
    瀏覽(23)
  • 【postgresql 基礎(chǔ)入門】分組查詢 group by 子句的寫法,分組條件過濾having子句的寫法,多列的分組以及與join聯(lián)合的多表分組

    ? 專欄內(nèi)容 : postgresql內(nèi)核源碼分析 手寫數(shù)據(jù)庫toadb 并發(fā)編程 個人主頁 :我的主頁 管理社區(qū) :開源數(shù)據(jù)庫 座右銘:天行健,君子以自強不息;地勢坤,君子以厚德載物. 本文主要分享在postgresql 數(shù)據(jù)庫中對查詢結(jié)果進行分組group by,以及對分組進行條件過濾having,同時對它

    2024年04月11日
    瀏覽(51)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包