이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 13382|회답: 1

[출처] SQL은 테이블 내 모든 중복 레코드 데이터를 찾아냅니다

[링크 복사]
게시됨 2018. 9. 15. 오전 9:55:18 | | |
1. 면접 중에 문제를 겪었는데, 즉 id와 name 두 필드로 테이블을 작성하고, 중복된 이름이 있는 모든 데이터를 조회한 뒤, 다음 항목을 나열하는 것입니다:


2. 모든 데이터를 조회하여 그룹화한 후, 중복 데이터의 반복 횟수에 대한 쿼리 데이터는 아래에 나열됩니다:


3. 다음은 다른 레코드의 결과를 보기 위한 것이며, 이제 다음과 같은 목록이 나열되었습니다: 중복 레코드를 쿼리하고 삭제하는 방법들의 완전한 목록


1. 테이블에서 중복된 중복 레코드를 찾고, 중복 레코드는 단일 필드(peopleId)를 기준으로 판단됩니다.


2. 테이블에서 중복된 중복 레코드를 삭제하면, 중복 레코드는 단일 필드(peopleId)를 기준으로 판단되어 가장 작은 로이드를 가진 레코드만 남게 됩니다


3. 테이블에서 중복된 중복 레코드(여러 필드) 찾기


4. 테이블에서 중복된 중복 레코드(여러 필드)를 삭제하고, 가장 작은 로이드를 가진 레코드만 남깁니다


5. 테이블에서 중복된 중복 레코드(여러 필드)를 찾고, 가장 낮은 rowid를 가진 레코드를 포함하지 않는 경우를 찾는다.


(2)

예를 들어
표 A에는 "name" 필드가 있습니다.
그리고 "이름" 값은 서로 다른 레코드 간에 같을 수 있습니다.
이제 테이블 내 레코드 간에 중복된 "name" 값이 있는 항목을 쿼리해야 합니다;


성별도 동일하다면, 다음과 같습니다:


(셋)

방법 1

방법 2 "중복 레코드"는 중복 레코드에 대해 두 가지 의미가 있는데, 하나는 완전 중복 레코드, 즉 모든 필드가 중복된 레코드이고, 다른 하나는 핵심 필드의 중복 부분이 있는 레코드로, 예를 들어 이름 필드가 중복된 경우는 있지만 다른 필드는 반드시 중복되지 않거나 모든 중복은 무시할 수 있습니다.


1. 첫 번째 반복 유형은 비교적 쉽게 풀고 사용할 수 있습니다



중복 기록이 없는 결과 세트를 얻을 수 있습니다.

만약 테이블이 중복 레코드를 삭제해야 한다면(중복 레코드 1개만 유지됨),

삭제는 다음과 같습니다



이 중복은 부실한 테이블 설계 때문에 발생하며, 고유한 인덱스 열을 추가함으로써 해결할 수 있습니다.


2. 이러한 중복 문제는 보통 중복 레코드의 첫 번째 레코드를 유지해야 하며, 연산 방법은 다음과 같습니다: Name과 Address에 중복 필드가 있다고 가정할 때, 이 두 필드의 고유 결과 집합이 필요합니다



마지막 선택은 반복되지 않는 Name과 Address 결과 집합을 얻지만(실제 작성 시 select 절에 추가할 수 있는 추가 autoID 필드가 있습니다)


(4)

쿼리가 중복됩니다








이전의:{"error_msg": "IAM 인증 실패"}
다음:MSSQL은 현재 연결과 열린 트랜잭션을 확인합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com