当前位置: 首页 > 知识库问答 >
问题:

如何编写Azure Cosmos COUNT DISTINCT查询

谭梓
2023-03-14

目标:

返回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的唯一值的数量。字段始终为1-我特意从实际情况中简化了它。

共有1个答案

朱鸿畅
2023-03-14

在撰写本文时(2021 1月22日),该查询提供了正确数量的不同值:

SELECT COUNT(UniqueFields) AS UniqueCount
FROM (SELECT DISTINCT c.field
    FROM c
    WHERE c.field = 'abc' AND c.partitionKeyField = '123') as UniqueFields
 类似资料:
  • 问题内容: 我正在努力编写一个HQL查询以在表中插入新记录。我已经看到了一些插入查询,如下所示,但我不想从下面的代码插入另一个表中的数据。 例如,我有一个表“ User”,其中有三个字段,例如名称,年龄,数字,并且有该用户表的实体。插入查询将是什么? 问题答案: 在HQL中,仅支持INSERT INTO…SELECT…。没有INSERT INTO…VALUES。HQL仅支持从另一个表插入。 因此可

  • 问题内容: 我有此查询,它运行良好 从此查询中,我从我的位置(这是我的第一张表)中选择所有3 KM的餐厅。 但是我需要从3Km中的食品接头中选择AVG等级。 该查询也运行完美: 但是我需要添加这两个查询,通过它们我可以选择所有那些食品接头及其等级AVG。 问题答案: 只需放置子查询,您将得到结果:

  • 我是HQL的新手。请告诉我如何在HQL中编写这个查询。 我的SQL方法是 我的SQL查询是 其中,id和日期是动态的 请在Hql查询中转换此sql查询

  • 我对冬眠很陌生。 所有实体都与表名和列名相同。这个查询在mysql中运行良好。我想用HQL编写这个查询。 我将如何在hql中编写这个?请任何人帮帮我。

  • 问题内容: 谁能帮助我获取下面提到的JPA查询的JPA标准查询。 问题答案: 假设Person与语言有关,这就是您在较早的Hibernate中所做的事情: 我第一次尝试使用JPA 2.0: 请让我知道这是否适合您。 编辑: 更新查询以仅使用一个呼叫。

  • 需要实现sql查询,如: 如何使用QueryDSL编写这样的语句?(我没有使用任何JPA)。任何帮助/提示都非常感谢!