복붙노트

[SQL] 중복 SQL 레코드 삭제

SQL

중복 SQL 레코드 삭제

테이블에 중복 된 이름을 가진 레코드를 삭제하는 가장 간단한 방법은 무엇입니까? 대답은 내가 건너 온 매우 혼동된다.

해결법

  1. ==============================

    1.나는 그것을 얻었다! 간단하고 그것은 큰 일했습니다.

    나는 그것을 얻었다! 간단하고 그것은 큰 일했습니다.

    delete 
       t1 
    from 
       tTable t1, tTable t2 
    where 
       t1.locationName = t2.locationName and  
       t1.id > t2.id 
    

    http://www.cryer.co.uk/brian/sql/sql_delete_duplicates.htm

  2. ==============================

    2.SQL 서버 2005 :

    SQL 서버 2005 :

    with FirstKey
    AS
    (
        SELECT MIN(ID), Name, COUNT(*) AS Cnt
          FROM YourTable
         GROUP BY Name
         HAVING COUNT(*) > 1
    )
    DELETE YourTable
      FROM YourTable YT
      JOIN FirstKey FK ON FK.Name = YT.Name AND FK.ID != YT.ID
    
  3. from https://stackoverflow.com/questions/841447/delete-duplicate-sql-records by cc-by-sa and MIT license