【发布时间】:2020-03-17 07:00:06
【问题描述】:
我使用 Cosmos Db,我需要按 COUNT 的结果对结果进行排序。
我更喜欢直接在 Cosmosdb 的查询输出中对结果进行排序,而不是每次自己对结果进行排序(或为其创建服务)。
在 Azure 的文档资源管理器中,我对 AggregatedEvent 集合执行以下请求:
SELECT * FROM (
SELECT COUNT(1) AS AlarmCount, a.AlarmType FROM AggregatedEvent a
WHERE a.AlarmType != null and a.Prom > 0
GROUP BY a.AlarmType ) AS g
ORDER BY g.AlarmCount
它会导致以下错误消息:
无法解析标识符“AlarmCount”。
如果我使用另一个属性来排序 g.AlarmType,一个存在于文档中的属性,则执行排序。
仅当您有办法使用 CosmosDb 归档订购时,请添加答案。
【问题讨论】:
-
a.AlarmType != null应该是a.AlarmType IS NOT NULL。 -
你确定你说的是 CosmosDB SQL 而不是 TransactSQL for SQL Server 吗?
-
我说的是一般的 SQL。 (
标签表示“对带有 SQL 标记的问题的答案应使用 ISO/IEC 标准 SQL。”)CosmosDB 在这里的工作方式是否有所不同? -
是的,看来 IEC 标准 SQL 'IS NOT NULL' 不符合 Microsoft SQL。
-
截至 2020 年 5 月,此查询返回一个更具描述性的错误“ORDER BY 项目表达式无法映射到文档路径”,但仍然不起作用。
标签: sql azure sql-order-by azure-cosmosdb aggregate-functions