gpt4 book ai didi

azure-cosmosdb - 如何编写 Azure Cosmos COUNT DISTINCT 查询

转载 作者:行者123 更新时间:2023-12-04 04:10:21 25 4
gpt4 key购买 nike

目标 :

返回 Cosmos 集合分区内特定文档字段的不同值的计数。

步骤 :

如果我在 Azure Cosmos 数据库上运行以下查询,

SELECT DISTINCT c.field
FROM c
WHERE c.field = 'abc' AND c.partitionKeyField = '123'

我按预期得到一行,例如以下回应
[
{
"field": "abc"
}
]


但是,如果我然后运行以下查询以尝试通过以下查询计算响应中不同文档的数量

SELECT VALUE COUNT(1)
FROM (
SELECT DISTINCT c.field
FROM c
WHERE c.field = 'abc' AND c.partitionKeyField = '123'
)

它返回
[
6
]

这是 c.field 的文档总数设置为 "abc"而不是 c.field 的不同值的数量.

问题 :

请您帮我理解为什么查询返回文档数量而不是 c.field 的不同值的数量,如果有一个查询将返回 c.field 的不同值的数量,即 1?

编辑 - PS。我知道这是一个人为的例子,因为根据定义 c.field 的唯一值的数量始终为 1 - 我特意从真实案例中简化了这一点。

最佳答案

在撰写本文时 (22/01/2021),此查询提供了正确数量的不同值:

SELECT COUNT(UniqueFields) AS UniqueCount
FROM (SELECT DISTINCT c.field
FROM c
WHERE c.field = 'abc' AND c.partitionKeyField = '123') as UniqueFields

关于azure-cosmosdb - 如何编写 Azure Cosmos COUNT DISTINCT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61844510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com