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

如何在SQL Server中找出关联不同人员的重复文档记录

如何在SQL Server中查询关联多个不同人员的文档

没问题,这在SQL Server里其实很容易实现,核心思路是按文档分组,统计每个文档关联的不同人员数量,再筛选出数量大于1的文档。

假设你的数据表名为DocumentPeople,包含两列:DocumentId(对应例子里的Doc1)和Name(对应关联的人员姓名),可以用下面的基础查询得到目标文档:

SELECT DocumentId
FROM DocumentPeople
GROUP BY DocumentId
HAVING COUNT(DISTINCT Name) > 1;

语句解释:

  • GROUP BY DocumentId:将同一文档的所有记录归为一组
  • COUNT(DISTINCT Name):统计每组内不同人员的数量(用DISTINCT是为了排除同一人员重复出现的情况,比如例子里Doc1有两条John的记录,只会算作1个)
  • HAVING COUNT(DISTINCT Name) > 1:筛选出那些关联了至少2个不同人员的文档

如果你还想直观看到每个文档对应的所有关联人员,可以使用SQL Server 2017及以上版本支持的STRING_AGG函数,把人员姓名拼接起来:

SELECT 
    DocumentId,
    COUNT(DISTINCT Name) AS UniquePersonCount,
    STRING_AGG(DISTINCT Name, ', ') AS AssociatedPeople
FROM DocumentPeople
GROUP BY DocumentId
HAVING COUNT(DISTINCT Name) > 1;

这个查询会返回文档ID、关联的不同人员数量,以及用逗号分隔的人员列表,方便你直接查看每个文档对应的所有关联人员。

记得根据你实际的表名和列名替换上面的DocumentPeople、DocumentId和Name哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:50:59