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

+ Recent posts