【发布时间】:2020-02-03 07:15:38
【问题描述】:
以下查询在 Azure Cosmos DB 中不起作用。它没有获取任何结果。谁能告诉我我在哪里以及我错过了什么。尝试根据来自多个相同 sessionId 条目的时间戳获取最近的项目。
SELECT c.payload, c.domainname
FROM c JOIN t IN c.domainname
WHERE c.payload.sessionTimestamp =
(SELECT VALUE MAX(t.payload.sessionTimestamp) FROM t
WHERE c.payload.sessionId = t.payload.sessionId)
示例 JSON 结构如下。
[{
"domainname": "cardiology",
"payload": {
"sessionId": "ABC1234",
"sessionTimestamp": "2020-02-04T10:14:43.507Z",
"values": [10, 20, 30, 40, 50]
}
},
{
"domainname": "cardiology",
"payload": {
"sessionId": "ABC1234",
"sessionTimestamp": "2020-02-05T10:10:43.507Z",
"values": [60, 70, 80, 90, 100]
}
}
]
【问题讨论】:
-
如果您编辑问题以显示示例文档,尤其是您认为查询有效的文档,这将非常有帮助。没有任何样本数据,我认为这是无法回答的。
-
@DavidMakogon,我已经用示例数据结构编辑了这个问题。
-
这里是什么,另一张桌子?
-
@biswpo ,'t' 是相同的 'c' 。我在上面的查询中使用了基于“域名”字段的自我加入。上面的查询正在执行,但没有获取任何记录。
-
@Balaji211 您必须使子查询单独工作。您不能在 sebquery 中使用
t。
标签: azure azure-cosmosdb azure-cosmosdb-sqlapi