我正在使用 Azure CosmosDB,模型包含 Id 和 creationTime 属性。我想做的是在时间间隔内计算条目。我查看了如何使用 LINQ 实现它,但找不到解决方案。我使用的不是SQL。这是我尝试过的:
SELECT VALUE COUNT(1)
FROM root WHERE (root["DeviceId"] = "myId")
GROUP BY (root["creationTime"] >= 50 and root["creationTime"] < 60),
(root["creationTime"] >= 40 and root["creationTime"] < 50),
(root["creationTime"] >= 30 and root["creationTime"] < 40),
(root["creationTime"] >= 20 and root["creationTime"] < 30)
请记住,我显示的值仅用于显示目的。正确的结果是具有计数值的数组,例如 [5,0,3,6] 这意味着 ">=50 和 < 60" = 5,">=40 和 < 50" = 0,">=30 和 < 40 " = 3,">=20 和 < 30" = 6,
查询的问题是:
- 结果的顺序与查询不匹配,我得到 [3,6,5]
- 如果计数为 0,则被解雇
- 如果范围没有涵盖所有计数,我也会得到差异。假设数据库包含以下范围:从 5 到 55,因为我从 20 到 60 查询,因此我也得到从 5 到 19 的范围。将所有计数相加将得出总数。
有没有更好的方法来实现这一点,而不是迭代每个间隔然后计算条目数。
谢谢你的帮助。