如何在 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
我有一个 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