当前位置: 首页 > 面试题库 >

单个查询以查找某个字段中具有最大价值的文档

郑嘉年
2023-03-14
问题内容

我有一个具有唯一的数字运行ID的文档集合,我想找到运行ID最高的文档。

我可以做两个查询。

首先,我可以找到最高的运行ID:

{
    "size": 0,
    "aggregations": {
      "latest_run_id": {
        "aggregations": {
          "latest_run_id": {
            "max": {"field": "run_id"}
          }
        }
      }
    }
}

其次,我可以找到具有该运行ID的文档:

{
    "filter": {
        {"term": {"run_id": latest_run_id}}
    }
}

有没有办法我可以通过一个查询做到这一点?


问题答案:

您可以通过组合“ sort”和“ size”来实现:

`{
  "filter" : {
    "match_all" : { }
  },
  "sort": [
    {
      "run_id": {
        "order": "desc"
      }
    }
  ],
  "size": 1
}`

这将返回最高的记录 run_id



 类似资料:
  • Elasticsearch允许通过其“more like this”(MLT)查询搜索类似文档。我正试图更好地理解和调整查询,以便更好地找到类似的文档。 在试验它时,我发现具有多个字段的单个MLT查询的结果与具有每个字段的多个MLT查询的布尔值产生不同的结果。以下样本(截断): 具有多个字段的单个MLT查询 具有单个字段的多个MLT查询 为什么会发生这种情况? 我知道MLT查询会将单个查询中列出的

  • 问题内容: 我想找到列的2nd,3rd,… nth个最大值。 问题答案: 您可以将列排序为降序格式,然后仅从第n行获取值。 编辑:: 根据评论请求进行了更新。 警告 完全未经测试! 类似于上面的内容对于Oracle应该适用…您可能必须首先正确使用语法!

  • 问题内容: 我知道标题听起来描述性不强,但这是我能想到的最好的: 我有这张桌子 实际上,这是封装在视图中的非常复杂的查询,但现在已不再重要。 我想为每个ID包含最高BDate的行。在此示例中,这将是结果。 我已经尝试过 但随后它返回所有行,因为对于每个值,列均不同。该查询是在Oracle v10中设计的,我有资格仅使用选择查询而不创建过程。 问题答案: 我们可以在IN子句中使用乘法列:

  • 问题内容: 我有这样的桌子 我想获得具有相同发明编号的订单数量总和 那就是想要这样的结果 我们如何编写mysql查询 问题答案: 利用聚合函数并根据进行分组。 GROUP BY子句

  • 我对MongoDB和聚合有最基本的了解。我还没有找到一个明确的例子来说明如何比较多个符合标准的文档并返回1个具有特定属性中最大值的文档。 假设我们收集了以下文档: 如何按名称进行筛选(),然后返回具有最高值的文档?

  • 问题内容: 我真的很不擅长SQL,我想知道我可以使用哪种SQL解决这个问题,在这个问题以下我怀疑是NP完全问题,但是我认为查询需要很长时间才能在大型数据集上运行因为这将作为后台任务完成。首选标准sql语句,但是如果需要存储过程,则使用它。SQL必须在Postgres 9.3上运行。 问题:给定一组包含一组关键字的文章,请为每条包含最多匹配关键字的文章查找前n条文章。 文章表的精简版本如下所示: 这