azure - Cosmos DB 中的 group by 问题

标签 azure group-by azure-cosmosdb azure-cosmosdb-sqlapi

我正在尝试按文档中数组的第一个元素进行分组。

然后进行过滤,这样我只得到值大于 1 的组。我正在寻找重复项。

文档如下所示:

    {
        "Entity": {
            "EntityId": 118788,
            "Urls": [
                {
                    Value: "http://some/url"
                }
            ]
        }
    }

这个查询工作正常:

SELECT c.Entity.Urls[0]["Value"] as url, count(1) as cnt
FROM c
where IS_DEFINED(c.Entity.Urls) AND ARRAY_LENGTH(c.Entity.Urls) > 0
group by c.Entity.Urls[0]["Value"]

但是如何过滤我的组以仅获取 cnt > 1 的组? 或者按 cnt 降序排序。

以下给我一个错误:

select * from 
(
    SELECT c.Entity.Urls[0]["Value"] as url, count(1) as cnt
    FROM c
    where IS_DEFINED(c.Entity.Urls) AND ARRAY_LENGTH(c.Entity.Urls) > 0
    group by c.Entity.Urls[0]["Value"]
) 
where cnt > 1

最佳答案

尝试下面的代码。

select  *  from
(
SELECT c.Entity.Urls[0]["Value"] as  url, count(1) as cnt
FROM c
where IS_DEFINED(c.Entity.Urls) AND ARRAY_LENGTH(c.Entity.Urls) >  0
group  by c.Entity.Urls[0]["Value"]
) c where c.cnt>1

这里您需要为分组查询的结果命名以访问该列。 我已将 c 赋予第一个查询的结果,并在执行查询时用作 c.cnt

enter image description here

关于azure - Cosmos DB 中的 group by 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76366501/

相关文章:

powershell - 调用 New-AzureStorageTable cmdlet 时 VSTS 发布 Azure Powershell 任务失败

azure - Azure 云服务中的目标 .NET 4.5.2

azure - 带有 Azure AD token 的 Yammer Rest API

Python:如何对 Pandas 中的人之间的付款进行分组和求和?

gremlin - 如何在小鬼查询中转义引号

javascript - 获取 Cosmos DB 中的文档大小

Azure DocumentDb 扁平建模与嵌套建模

c# - 确定数据库是否是 Azure 数据库

sql - 分组多行

python - Pandas 数据框获取掩码列零(0)之间的所有行,并获取每组的第一行和最后一行