You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cosmos DB SQL中查询同primarycode异code2记录的共同requiredvalue

获取Cosmos DB中同一PrimaryCode下不同Code2记录的共同RequiredValue

要找出同一primarycode下不同code2的文档中,所有文档都包含的requiredvalue,核心是找到这些文档的array.requiredvalue的交集。你现有的查询只能拿到所有去重后的value,我们可以通过统计每个值的覆盖范围来筛选出共同值。

实现思路

  1. 先统计符合条件的文档总数:同一primarycode下不同code2的文档数量(你的示例里是2)。
  2. 统计每个requiredvalue被多少个不同code2的文档包含。
  3. 筛选出统计数等于总文档数的requiredvalue——这个值就是所有目标文档共同拥有的。

最终查询语句

SELECT r.requiredvalue
FROM (
    -- 统计每个requiredvalue对应的不同code2文档数
    SELECT f.requiredvalue, COUNT(DISTINCT c.code2) AS code2Count
    FROM c 
    JOIN f IN c.array
    WHERE c.primarycode = "0000001"
    GROUP BY f.requiredvalue
) r
JOIN (
    -- 获取符合条件的不同code2文档总数
    SELECT VALUE COUNT(DISTINCT c.code2) 
    FROM c 
    WHERE c.primarycode = "0000001"
) totalDocs
WHERE r.code2Count = totalDocs

逻辑解释

  • 内层第一个子查询:通过JOIN展开每个文档的array数组,按requiredvalue分组后,统计每个值对应的不同code2数量(确保同一个code2的文档重复出现也只计一次)。
  • 内层第二个子查询:计算当前primarycode下有多少个不同的code2文档,也就是我们需要覆盖的文档总数。
  • 外层查询:关联两个子查询的结果,筛选出code2Count等于总文档数的requiredvalue,这就是所有目标文档共同包含的值。

用你的示例数据测试,这个查询会返回"79050040002010",正好是两个文档都有的共同值。

内容的提问来源于stack exchange,提问作者Ritik Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 19:17:28