2012-09-25 5 views
1

동일한 열 값 (예 : SSN 필드)을 가진 모든 행을 선택할 수 있지만 모두 구분하여 표시 할 수 있습니까? ?정확히 일치하지 않는 중복 행 찾기

이 답변을 검색했지만 모두 행 수가 정확히 같아야하는 "개수 (*) 및 그룹화 기준"섹션이 있습니다.

+0

plz 샘플 데이터 제공 –

답변

2

이 시도 :

SELECT A, B FROM MyTable 
WHERE A IN 
(
    SELECT A FROM MyTable GROUP BY A HAVING COUNT(*)>1 
) 

는 내가 SQL 서버로 했어요. 그러나 이것은 당신이 필요한 데이터를 가져오고 우리가 함께 그룹화 된 데이터를 볼 수 있도록 순서대로 표시됩니다

enter image description here

+0

멋진 찾고 계십니까? – aghaux

0
SELECT 
    * 
FROM 
    MyTable 
WHERE 
    EXISTS 
    (
     SELECT 
      NULL 
     FROM 
      MyTable MT 
     WHERE 
      MyTable.SameColumnName = MT.SameColumnName 
     AND MyTable.DifferentColumnName <> MT.DifferentColumnName) 
0

이 필요한 것입니다 바랍니다.

SELECT * FROM TABLENAME 
WHERE SSN IN 
(
    SELECT SSN FROM TABLENAMEGROUP BY SSN HAVING COUNT(SSN)>1 
) 

ORDER BY SSN 

여기서 SSN은 유사한 값 확인이 수행 된 열 이름입니다.

2

중복 계산을 얻기 위해 하위 쿼리 대신 분석 함수를 사용하여 테이블을 한 번만 참조하는 다른 방법이 있습니다. 더 빠를 수도 있습니다. 그것은 또한 특정 데이터에 의존하지 않을 수도 있습니다.

SELECT * FROM (
    SELECT col1, col2, col3, ssn, COUNT(*) OVER (PARTITION BY ssn) ssn_dup_count 
) 
WHERE ssn_dup_count > 1 
ORDER BY ssn_dup_count DESC 
관련 문제