【发布时间】:2019-10-11 16:56:26
【问题描述】:
我需要在 Azure 数据资源管理器上使用“GROUP BY”子句,但我认为它不支持。
有人有任何想法来解决或避免分组吗?
最好的问候,
【问题讨论】:
标签: azure azure-cosmosdb azure-cosmosdb-sqlapi
我需要在 Azure 数据资源管理器上使用“GROUP BY”子句,但我认为它不支持。
有人有任何想法来解决或避免分组吗?
最好的问候,
【问题讨论】:
标签: azure azure-cosmosdb azure-cosmosdb-sqlapi
最后,Azure Cosmos DB 目前在 .NET SDK 3.3 或更高版本中支持 GROUP BY。对其他语言 SDK 和 Azure 门户的支持目前不可用,但已在计划中。
<group_by_clause> ::= GROUP BY <scalar_expression_list>
<scalar_expression_list> ::=
<scalar_expression>
| <scalar_expression_list>, <scalar_expression>
【讨论】:
到目前为止,Azure 数据资源管理器中没有分组依据。但是,summary 运算符可以帮助您实现许多您将在 SQL 中使用 GROUP BY 的事情。
您可以在https://docs.microsoft.com/en-us/azure/kusto/query/summarizeoperator找到它
【讨论】:
Cosmos DB 不支持group by 功能,如果您有紧急需要,可以投票给this。
在这里提供一个第三方包documentdb-lumenize供您参考,它支持按功能分组,它有.net示例:
string configString = @"{
cubeConfig: {
groupBy: 'state',
field: 'points',
f: 'sum'
},
filterQuery: 'SELECT * FROM c'
}";
Object config = JsonConvert.DeserializeObject<Object>(configString);
dynamic result = await client.ExecuteStoredProcedureAsync<dynamic>("dbs/db1/colls/coll1/sprocs/cube", config);
Console.WriteLine(result.Response);
您可以按assetId 列分组并获得最大timestamp。
另外,你可以参考我之前的案例:how to count distinct value in cosmos DB使用存储过程来实现一些聚合特性。
【讨论】: