我使用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归档订购时添加答案。
2条答案
按热度按时间yacmzcpb1#
截至2022年11月,该功能仍不受支持。来自微软的文档在此处定义了限制:https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-group-by
GROUP BY子句不允许下列任何一项:
*聚合系统函数(只允许在SELECT子句中使用)
vfh0ocws2#
我认为你可以通过在查询中使用order by来实现这个结果。
或
然而,cosmos数据库在查询中的每个条件都首选别名,因此您会得到错误。