在SQL Server数据库中查找其中一列必须不同的重复项

时间:2015-11-26 08:38:18

标签: sql sql-server duplicates

我试图编写SQL查询来查找重复项。我无法做的是让我的查询只选择其中一列值必须不同的重复项。所以,我想找到所有列都相同的所有重复项,但其中一个值必须不同。

目前我得到了什么:

SELECT 
    a.1, underlag.1, f.1, f.2, f.3, f.4, f.5,  f.6, f.7, f.8, 
    COUNT(*) TotalCount 
FROM 
    f
JOIN
    a ON a.Id = f.Id
JOIN 
    underlag ON underlag.Id = f.Id
GROUP BY 
    a.1, underlag.1, f.1, f.2, f.3, f.4, f.5,  f.6, f.7, f.8
HAVING 
    COUNT(*) > 1
ORDER BY 
    underlag.1

我想要的不同之处是f.9,但我不知道如何做到这一点。任何正确方向的帮助或指示都会很棒!

1 个答案:

答案 0 :(得分:0)

SELECT *
FROM (
    SELECT
          a1 = a.[1]
        , underlag1 = underlag.[1]
        , f.[1], f.[2], f.[3], f.[4], f.[5], f.[6], f.[7], f.[8], f.[9]
        , val = SUM(1) OVER (PARTITION BY CHECKSUM(f.[1], f.[2], f.[3], f.[4], f.[5], f.[6], f.[7], f.[8]))
    FROM f
    JOIN a on a.Id = f.Id
    JOIN underlag on underlag.Id = f.Id
) t
WHERE t.val > 1
ORDER BY underlag1