【发布时间】:2019-11-05 12:42:05
【问题描述】:
鉴于 cosmos db 不支持 group by,有什么好的替代方法来实现类似功能:
Select sum(*) , groupterm from tble group by groupterm
我可以在 cosmos 存储过程中有效地实现这一点吗?
【问题讨论】:
标签: azure-cosmosdb
鉴于 cosmos db 不支持 group by,有什么好的替代方法来实现类似功能:
Select sum(*) , groupterm from tble group by groupterm
我可以在 cosmos 存储过程中有效地实现这一点吗?
【问题讨论】:
标签: azure-cosmosdb
正如Cosmos_DB 所述:
SQL 中的聚合功能仅限于 COUNT、SUM、MIN、MAX、AVG 函数。不支持 GROUP BY 或数据库系统中的其他聚合功能。但是,存储过程可用于实现数据库内聚合功能。
我可以在 cosmos 存储过程中有效地实现这一点吗?
适用于 .NET 和 Node.js
Larry Maccherone 提供了一个很棒的包 documentdb-lumenize,它支持聚合(分组、数据透视表和 N 维立方体)和时间序列转换作为 DocumentDB 中的存储过程。
另外,对于 Python 和 Scala,您可以参考azure-cosmosdb-spark。
【讨论】:
groupBy、field 配置为单个字段。
现在 Cosmos db SQL API 支持分组依据。您将需要 SDK 3.3 或更高版本
Azure Cosmos DB 当前支持 .NET SDK 3.3 或更高版本中的 GROUP BY。 目前不支持其他语言 SDK 和 Azure 门户 可用,但已在计划中。
https://docs.microsoft.com/en-gb/azure/cosmos-db/sql-query-group-by
【讨论】:
最后,Azure Cosmos DB 目前支持GROUP BY in .NET SDK 3.3 或更高版本。对其他语言 SDK 和 Azure 门户的支持目前不可用,但已在计划中。
<group_by_clause> ::= GROUP BY <scalar_expression_list>
<scalar_expression_list> ::=
<scalar_expression>
| <scalar_expression_list>, <scalar_expression>
【讨论】: