중복데이터 삭제 방법과 ctid (PostgreSQL)
테이블에 동일한 데이터가 중복으로 발생한 것을 발견했다. 여기서 중복이라는 것은 모든 컬럼 데이터가 동일한 row를 의미한다. 애초에 pk도 지정이 되어있지 않은 기존 설계도 문제이지만, 어찌되었든 이로인해 배치가 돌지 않는 문제가 발생하고 있으므로 중복데이터를 전부 삭제해야 했다. 구글링을 통해 1차로 알아본 방법은 아래 쿼리를 사용하는 것이다. DELETE A FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY eng_name ORDER BY eng_name) AS num, * FROM name ) A WHERE num >= 2 헌데 이 방법은 문법오류 때문에 통하지 않았다. 블로그를 다시보니 MS-SQL 기준으로 작성된 듯한데, 아마 PostgreSQL에서는 다른 방법..
2021. 9. 15. 09:27