【问题标题】:CosmosDB + group byCosmosDB + 分组依据
【发布时间】:2019-10-11 16:56:26
【问题描述】:

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

有人有任何想法来解决或避免分组吗?

最好的问候,

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      到目前为止,Azure 数据资源管理器中没有分组依据。但是,summary 运算符可以帮助您实现许多您将在 SQL 中使用 GROUP BY 的事情。

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

      【讨论】:

        【解决方案3】:

        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使用存储过程来实现一些聚合特性。

        【讨论】:

        猜你喜欢
        • 2011-09-24
        • 2020-01-17
        • 1970-01-01
        • 1970-01-01
        • 2012-09-13
        • 2021-02-11
        • 1970-01-01
        • 2011-10-14
        • 2011-09-12
        相关资源
        最近更新 更多