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

如何在SQL Server/Excel中筛选Group和Division重复的多Name记录?

筛选Excel中Group和Division重复对应的完整记录

原始表格([Sheet1$])

GroupDivisionName
5552Adam
5551Bob
4441Sarah
5552Ann
4441Jeff

预期结果

GroupDivisionName
5552Adam
5552Ann
4441Sarah
4441Jeff

错误尝试及原因

你尝试的语句报错,核心原因是SQL语法规则:GROUP BY子句仅指定[Group]和[Division]时,SELECT中只能包含这两个分组列或聚合函数(比如COUNT(*)),不能直接包含未分组的[Name]列。

SELECT [Group], [Division], [Name], COUNT(*)
FROM [Sheet1$]
GROUP BY [Group], [Division] 
HAVING COUNT(*) > 1

正确查询语句

方法1:子查询关联(兼容性好,适用于所有Excel ODBC驱动)

先通过子查询找出存在多个Name的Group+Division组合,再关联原表获取完整记录:

SELECT t.[Group], t.[Division], t.[Name]
FROM [Sheet1$] t
INNER JOIN (
    SELECT [Group], [Division]
    FROM [Sheet1$]
    GROUP BY [Group], [Division]
    HAVING COUNT(*) > 1
) dup 
    ON t.[Group] = dup.[Group] 
    AND t.[Division] = dup.[Division]
ORDER BY t.[Group], t.[Division], t.[Name]

方法2:窗口函数(适用于支持窗口函数的新版Excel ODBC驱动)

利用窗口函数直接计算每个Group+Division组合的记录数,再筛选出符合条件的行:

SELECT [Group], [Division], [Name]
FROM (
    SELECT 
        [Group], [Division], [Name],
        COUNT(*) OVER(PARTITION BY [Group], [Division]) AS record_count
    FROM [Sheet1$]
) t
WHERE record_count > 1
ORDER BY [Group], [Division], [Name]

内容的提问来源于stack exchange,提问作者h.rashid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:55:20