如何在 cosmosdb sql 中显示不明确或重复的记录?

How to display non distinct or duplicate records in cosmosdb sql?

我有一个 cosmosdb 集合,其中包含如下记录(我已显示 2 条记录作为示例):

[
{
    "id": "0000001|0000000|0000002",
    "primarycode": "0000001",
    "code2": "0000000",
    "code3": "0000002",
    "array": [
        {
            "requiredvalue": "79050040002010",
            "someobject": {
                "abc": "02",
                "def": "05",
                "ghi": "04",
                "jkl": "03"
            }
        }
    ]
},
{
    "id": "0000001|0000003|0000002",
    "primarycode": "0000001",
    "code2": "0000003",
    "code3": "0000002",
    "array": [
        {
            "requiredvalue": "79050040002010",
            "someobject": {
                "abc": "02",
                "def": "05",
                "ghi": "04",
                "jkl": "03"
            }
        },
        {
            "requiredvalue": "79050040005680",
            "someobject": {
                "abc": "02",
                "def": "05",
                "ghi": "04",
                "jkl": "03"
            }
        }
    ]
}
]

我需要得到的是这两个记录的共同“requiredvalue”(即“79050040002010”),条件是这些记录具有相同的“primaryCode”但“code2”不同,因此id也不一样

我可以通过以下查询从这些记录中获取不同的“必需值”:

SELECT DISTINCT f.requiredvalue FROM c JOIN f IN c.array WHERE c.primarycode="0000001"

这将 return 为“79050040002010”、“79050040005680”的“必需值”。 但我只想要常见的“必需值”,即“79050040002010”。

您可以使用很久以前未引入的 GROUP BY 子句。示例:

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

编辑:特此查询以获取每个主要代码的重叠所需值

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