Azure cosmosdb 如何在cosmosdb sql中显示非不同或重复的记录?

Azure cosmosdb 如何在cosmosdb sql中显示非不同或重复的记录?,azure-cosmosdb,azure-cosmosdb-sqlapi,Azure Cosmosdb,Azure Cosmosdb Sqlapi,我有一个cosmosdb集合,它有如下记录(我为示例显示了2条记录): 我需要从这两个记录(即“79050040002010”)中获得通用的“requiredvalue”,条件是这些记录具有相同的“primaryCode”,但“code2”不同,因此id也不同 我可以通过查询从这些记录中获得不同的“requiredvalue”: SELECT DISTINCT f.requiredvalue FROM c JOIN f IN c.array WHERE c.primarycode="0

我有一个cosmosdb集合,它有如下记录(我为示例显示了2条记录):

我需要从这两个记录(即“79050040002010”)中获得通用的“requiredvalue”,条件是这些记录具有相同的“primaryCode”,但“code2”不同,因此id也不同

我可以通过查询从这些记录中获得不同的“requiredvalue”:

SELECT DISTINCT f.requiredvalue FROM c JOIN f IN c.array WHERE c.primarycode="0000001"
这将返回带有“79050040002010”、“79050040005680”的“requiredvalue”。
但是我只想要一个通用的“requiredvalue”,即“79050040002010”。

您可以使用
GROUPBY
子句,该子句在很久以前就没有引入过。例如:

SELECT s.requiredvalue
FROM (
    SELECT f.requiredvalue, COUNT(1) AS count
    FROM c
    JOIN f IN c.array1
    WHERE c.primarycode='0000001'
    GROUP BY f.requiredvalue
) s
WHERE s.count > 1
编辑:这里还有一个查询,用于获取每个主代码的重叠requiredvalue

SELECT s.primarycode, s.requiredvalue
FROM (
    SELECT c.primarycode, f.requiredvalue, COUNT(1) AS count
    FROM c
    JOIN f IN c.array1
    GROUP BY c.primarycode, f.requiredvalue
) s
WHERE s.count > 1

非常感谢你。它工作得很好。我认为你输入了array1作为一个打字错误,它应该是数组而已,我相信你知道这一点。再次感谢!:)如果我想为集合中的每一个不同的primarycode获取这些公共必需值,您认为应该怎么做。与值为000的primarycode类似,有2条记录(每条记录有2-2个requiredvalue),其中有1条公共requiredvalue,类似地,primarycode 111中还有4条其他记录(每条记录有2-2个requiredvalue),其中3条是公共requiredvalue。我想显示与每个主代码对应的公共requiredvalue。如果你能把我带到正确的方向,那就太好了。@RitikPatel不完全确定你期望的输出是什么,但是在上面的编辑中看到了代码。你对这段代码是正确的,我尝试了这段代码,但这里的输出格式是:`[{“primarycode”:“0001”,“requiredvalue”:“90159902053710”},{“primarycode”:“0001”,“requiredvalue”:“90159902054120”}]`但我希望得到的结果格式是:`[{“primarycode”:“0001”,“requiredvalue”:[“90159902053710”,“90159902054120”]}]因此,在1个数组中包含所有必需的值。这可能吗?我一直在尝试这样做,但找不到方法。@RitikPetel我认为不可能分组到数组中,因为数组方法不是聚合函数。至少我不知道如何做
SELECT s.primarycode, s.requiredvalue
FROM (
    SELECT c.primarycode, f.requiredvalue, COUNT(1) AS count
    FROM c
    JOIN f IN c.array1
    GROUP BY c.primarycode, f.requiredvalue
) s
WHERE s.count > 1