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

如何使用SQL获取CosmosDB中每个项目的最新记录

纪枫
2023-03-14
问题内容

我有一个类似于

"id": "uuid",
"deviceId": "uuid",
"message": {
    "content": "string",
    "ts": 1
},
"data": {
    "temperature": 21
}

我想获取每个“ deviceId”的最新“数据”(使用message.ts作为时间戳)。

到目前为止,我已经设法使用查询按时间戳记的顺序取回了数据, SELECT c.deviceId, c.message.ts, c.data FROM cORDER BY c.message.ts DESC但是我不知道如何删除重复的设备记录。

这可以在CosmosDB SQL引擎内完成吗?


问题答案:

感谢Mark Brown的评论,我发现以下内容似乎是此问题的正确解决方案。不仅仅只是一次性使用一些SQL那样优雅,但这确实是需要的。

https://docs.microsoft.com/zh-cn/samples/azure-samples/cosmosdb-materialized-
views/real-time-view-cosomos-azure-functions/

本质上,您创建了一个无服务器功能,该功能由Cosmos变更供稿触发并更新实例化视图,该视图实质上只是一个文档,在这种情况下,data每个文档都是最新的deviceId

专门针对这种情况,它很可能会device使用最新数据来更新相应的文档。



 类似资料:
  • 问题内容: 不幸的是,SQL并不是很容易找到我。我有两个表,一个表和一个表。 贷款支付表: ID(主键),LoanID(与贷款表上的ID匹配),PaymentDate,Amount等。 我需要一条sql语句,该语句可以给我每个月输入的最后一笔付款(如果有的话)。我目前的说法没有给我结果。还存在一个问题,有时在该月的最大日期有时会有平局,因此我也必须能够处理该问题(我的想法是在平局的情况下选择最大的

  • 问题内容: 这个问题已经在这里有了答案 : SQL只选择列上具有最大值的行[重复] (27个答案) 去年关闭。 假设我有一个带有列的表: 我只想从每个用户那里获取最新消息,就像您在深入实际线程之前在FaceBook收件箱中看到的那样。 此查询似乎使我接近所需的结果: 但是查询给我的是来自每个用户的最旧消息,而不是最新消息。 我不知道这一点。 问题答案: 您应该找出每个组(子查询)中的最后一个值,然

  • 我正在努力处理mongo查询。我需要在单个查询中查找文档集合。集合应包含每个用户在单个查询中使用的最新日期(字段创建日期)的文档。 在斯波克有一个测试案例来演示我想要实现的目标: 我发现不同的方法是<代码>2.1.0的一部分。M1版本,因此尚未提供。 我也在尝试注释,但留档(下面的链接)没有指定如何创建像我这样的查询。 https://docs.spring.io/spring-data/data

  • 问题内容: 我的数据如下所示: 我要完成的工作是按类别获取最新的2个条目(按insertdate DESC的顺序排列),因此结果应为: 使用获取最新消息很容易,但是如何在不启动多个查询的情况下获取最新2? 感谢您的帮助;-) S. 问题答案: 在这里,你哥们!

  • 问题内容: 我有三个表: 我需要获取每次测量的最新事件(过去的事件)及其相关的eventvalues数据。 我当前的查询很丑陋: 而且只允许我从表格中选择一列(我需要更多) 有什么方法可以使用联接来完成此操作吗? 编辑 :即使它们在第一个事件之前,我也需要从测量表中选择所有条目(即,为连接选择空数据) 问题答案: 您可以使用CROSS APPLY。

  • 问题内容: 我想获得表中每个记录的最小日期,该记录具有一个主键的多个日期条目。看看我的桌子: 我想要这样的结果: 我想获取每个CaseNo的最短日期记录在我的桌子上。 我尝试了这段代码: 结果是这样的: 该代码删除没有最小日期的行。我想显示所有记录的最小日期为Min_date。 问题答案: 试试这个