2015-01-27 2 views
0

내 SQL Server 2008 데이터베이스에는이라는 테이블이 있고 Timestamp DateTime 값과 테이블의 외래 키 열인 Probe_id이 있습니다.SQL Server 테이블에서 중복 값을 찾으려면 어떻게합니까?

내 데이터베이스에서 불행히도 제거하려는 테이블의 중복 값이 ​​있습니다. 그러나이를 찾으려면 쿼리에 어려움을 겪고 있습니다.

select * from Reading where Probe_id = Probe_id and Timestamp = Timestamp; 

누구 아이디어 :

는이 같은 일이 중복을 찾을 것이라고 생각? 다음 기록의 중복 등을 만드는 열로

답변

2
WITH Duplicates 
     AS (SELECT Probe_id, 
        Timestamp, 
        ROW_NUMBER() OVER (PARTITION BY Probe_id, Timestamp ORDER BY Probe_id, Timestamp) AS [RowNumber] 
      FROM  Reading 
     ) 
DELETE FROM Duplicates 
WHERE Duplicates.RowNumber > 1 
2

그룹은 모든 그룹이 얼마나 많은 계산

select Probe_id, Timestamp, count(*) as num_of_duplicates 
from Reading 
group by Probe_id, Timestamp 
having count(*) > 1 
관련 문제