我使用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的订购时,请添加答案。
答案 0 :(得分:0)
我认为您可以通过在查询内部使用order来实现结果。如下所示。
SELECT * FROM (
SELECT COUNT(1) AS AlarmCount, a.AlarmType FROM AggregatedEvent a
WHERE a.AlarmType != null and a.Prom > 0
GROUP BY a.AlarmType ORDER BY COUNT(1) ) AS g
OR
SELECT COUNT(1) AS AlarmCount, a.AlarmType FROM AggregatedEvent a
WHERE a.AlarmType != null and a.Prom > 0
GROUP BY a.AlarmType ORDER BY COUNT(1)
但是cosmos db对于查询中的每个条件都希望使用别名,因此会出现错误。
答案 1 :(得分:0)
截至 2021 年 3 月,此功能仍不受支持。 Microsoft 的文档在此处定义了限制:https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-group-by
<块引用>GROUP BY 子句不允许出现以下任何情况: