选择重复行数会返回错误结果

时间:2016-05-14 02:30:03

标签: sql sql-server select duplicates

我有一个包含82,535行的表,其中65,087行是ID唯一的。当我拉出整个结果集82,535并复制到Excel并删除重复项时,它显示有17,448个重复项。但是,当我使用下面的查询时,我会得到不同的结果:

SELECT
    BLD_ID, COUNT(BLD_ID) AS [BLD_ID COUNT] 
FROM
    Project.BreakageAnalysisOutcome_SentToAIM 
GROUP BY 
    BLD_ID 
HAVING 
    COUNT(BLD_ID) > = 2

此查询返回值17,364

enter image description here

我确信唯一BLD_ID的数量是65,087

2 个答案:

答案 0 :(得分:2)

最可能的原因是重复记录可能有2次以上发生。

找到重复计数

Select  COUNT(BLD_ID)- COUNT( DISTINCT BLD_ID) 
From Project.BreakageAnalysisOutcome_SentToAIM 

答案 1 :(得分:0)

将CTE与Row_Number函数一起使用,而不是使用group by子句进行计数,使用Row_Number>进行文件管理。 1。

;与cte 如 (   SELECT ID,      ROW_NUMBER()OVER(ID ID ORDER BY ID)作为Rn   来自[表1] ) DELETE cte WHERE Rn> 1