CosmosDB +分组依据

时间:2019-10-11 16:56:26

标签: azure azure-cosmosdb azure-cosmosdb-sqlapi

我需要在 Azure Data Explorer 上使用“ GROUP BY ”子句,但我认为它不受支持

有人有解决或避免分组的想法吗?

最诚挚的问候,

3 个答案:

答案 0 :(得分:0)

到目前为止,Azure Data Explorer中没有分组依据。但是,有一个summary运算符可以帮助实现在SQL中使用GROUP BY进行的许多操作。

您可以在https://docs.microsoft.com/en-us/azure/kusto/query/summarizeoperator

上找到它

答案 1 :(得分:0)

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,以使用存储过程来实现某些聚合功能。

答案 2 :(得分:0)

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

enter image description here