"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 가장 오래된 제출물을 유지하면서 중복 행을 삭제하는 방법은 무엇입니까?

가장 오래된 제출물을 유지하면서 중복 행을 삭제하는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:882

 How to Delete Duplicate Rows While Keeping the Oldest Submission?

중복 행 관리: 가장 오래된 제출물 보존

중복 데이터는 모든 데이터베이스의 무결성과 유용성에 큰 영향을 미칠 수 있습니다. 이 시나리오의 목표는 subscriberEmail 필드를 기반으로 중복 행을 제거하고 원래 제출 내용만 유지하는 것입니다.

테이블 교환 기술을 사용하지 않고 이를 달성하려면 다음 SQL 쿼리를 사용할 수 있습니다.

delete x 
from myTable x
join myTable z on x.subscriberEmail = z.subscriberEmail
where x.id > z.id

이 쿼리는 테이블 별칭 기능을 사용합니다. myTable 테이블에 대한 별칭 x 및 z를 생성하면 동일한 테이블 내의 행을 비교할 수 있습니다. 특히 subscriberEmail 필드에서 x와 z를 결합하여 효과적으로 자체 결합을 생성합니다.

where 절은 중요한 필터링을 수행합니다. id 필드가 z의 해당 id 필드보다 큰 x의 레코드를 제거합니다. 이렇게 하면 원본이 아닌(중복) 제출물만 삭제 대상이 됩니다.

성능을 더욱 향상하려면 subscriberEmail 열에 UNIQUE 인덱스를 구현하는 것이 좋습니다. 이렇게 하면 앞으로 중복 항목이 테이블에 삽입되는 것을 자동으로 방지할 수 있습니다.

이 쿼리를 구현하면 중복 행을 효율적으로 제거하고 복잡한 테이블 조작이나 작업 없이 각 이메일 주소에 대해 가장 오래된 제출 내용을 보존할 수 있습니다. 데이터 셔플링 절차.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3