CosmosDB + 分组依据

CosmosDB + group by

我需要在 A​​zure 数据资源管理器 上使用“GROUP BY”子句,但我认为它不受支持.

有人知道如何解决或避免分组吗?

此致,

到目前为止,Azure 数据资源管理器中没有分组依据。但是,汇总运算符可以帮助实现许多您将在 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

另外可以参考我之前的案例:使用存储过程实现一些聚合功能

最后,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>