delete from dbo.TABEL_NAME where PK in ( select A.PK from DATABASE A inner join ( select max(PK) as , COLUMN, count(*) as cnt from dbo.TABLE_NAME group by COLUMN having count(*) > 1 )B on A.COLUMN = b.COLUMN and A.PK <> B.PK );
테이블 명과 컬럼명 등을 잘 맞춰서 써주면 한가지만 남기고 중복 데이터를 제거할 수 있다
추가적으로 컬럼에 DATETIME이 있고 최근날짜의 값을 남기고 싶다면 order by DATETIME_COLUMN DESC 를 입력해주면 최신의 데이터를 남길 수 있다.
'DataBase' 카테고리의 다른 글
EdgeDB 튜토리얼 무작정 따라하기 (0) | 2022.09.29 |
---|---|
[MYSQL] order by 후에 group 하는 방법 (0) | 2015.02.17 |