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

查询参与完全相同关联项目的所有人员

数据表

Project表

idnameversion
1Swam0.0.1
2Dinali0.0.1
3Dinali0.0.2
4BigR0.0.3
5Kale0.0.1
6Kale0.0.2

Person表

idname
1Jake
2Skye
3Kieth
4Jim
5Eliz
6Haun

Person_Project表

idperson_idproject_id
111
221
322
431
532
641
744
851
961
1062
1163
查询需求

需要查询所有参与完全相同项目集合的人员。根据上述数据,结果应包含:

  • 人员1(Jake)和5(Eliz):两人均仅参与项目1
  • 人员2(Skye)和3(Kieth):两人均参与项目1和2

不应返回人员4(Jim)和6(Haun),因为没有其他人员与他们的项目参与集合完全一致。

解决方案

可以通过聚合人员的项目ID集合来判断是否完全相同,以下是实现SQL:

-- 生成每个人员的项目集合标识(排序后用逗号拼接)
WITH PersonProjectSets AS (
    SELECT
        person_id,
        STRING_AGG(CAST(project_id AS VARCHAR), ',' ORDER BY project_id) AS project_set
    FROM Person_Project
    GROUP BY person_id
)
-- 筛选出存在重复项目集合的人员
SELECT
    p.id,
    p.name,
    pps.project_set
FROM Person p
JOIN PersonProjectSets pps ON p.id = pps.person_id
WHERE pps.project_set IN (
    SELECT project_set
    FROM PersonProjectSets
    GROUP BY project_set
    HAVING COUNT(*) > 1
)
ORDER BY pps.project_set, p.id;

执行结果

idnameproject_set
1Jake1
5Eliz1
2Skye1,2
3Kieth1,2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:25:39