如何根据 ComosDb 中聚合函数的结果对查询结果进行排序?

Ant*_*ère 11 sql sql-order-by aggregate-functions azure azure-cosmosdb

我使用 Cosmos Db,需要按COUNT的结果对结果进行排序。

我更喜欢直接在 Cosmosdb 查询的输出中对结果进行排序,而不是每次自己对结果进行排序(或为其创建服务)。

在 Azure 的文档资源管理器中,我对 AggregateEvent 集合执行以下请求:

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
Run Code Online (Sandbox Code Playgroud)

结果出现以下错误消息:

无法解析标识符“AlarmCount”。

如果我使用另一个属性来排序 g.AlarmType(文档中存在的属性),则执行排序。

仅当您有办法使用 CosmosDb 归档订单时,请添加答案。

Tre*_*ews 9

截至 2023 年 10 月,仍不支持此功能。Microsoft 的文档在此处定义了限制:https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-group-by

GROUP BY 子句不允许出现以下任何情况:

  • 别名属性或别名系统函数(SELECT 子句中仍然允许使用别名)
  • 子查询
  • 聚合系统函数(仅允许在 SELECT 子句中使用)