[SQL] PostgreSQL의와 중복 행을 찾기
SQLPostgreSQL의와 중복 행을 찾기
우리는 다음과 같은 열이있는 사진의 테이블이 있습니다 :
id, merchant_id, url
이 표는 조합 MERCHANT_ID, URL에 대한 중복 값이 포함되어 있습니다. 그래서 하나의 행보다 여러 번 나타날 가능성이 있습니다.
234 some_merchant http://www.some-image-url.com/abscde1213
235 some_merchant http://www.some-image-url.com/abscde1213
236 some_merchant http://www.some-image-url.com/abscde1213
그 중복을 제거하는 가장 좋은 방법은 무엇입니까? (나는 3. PostgreSQL을 9.2 사용하고 레일)
해결법
-
==============================
1.여기에 내 걸릴 것입니다.
여기에 내 걸릴 것입니다.
select * from ( SELECT id, ROW_NUMBER() OVER(PARTITION BY merchant_Id, url ORDER BY id asc) AS Row FROM Photos ) dups where dups.Row > 1
맞춤에 의해 순서에 당신이 당신의 사양에 삭제하고자하는 기록을 재생할 주시기 바랍니다.
SQL 바이올린 => http://sqlfiddle.com/#!15/d6941/1/0
포스트 그레스 9.2 SQL 바이올린은 더 이상 지원되지 않습니다; 포스트 그레스 9.3 SQL 바이올린을 업데이트
-
==============================
2.sgeddes의 대답의 두 번째 부분은 포스트 그레스에 대한 작업 (바이올린 용도의 MySQL)을하지 않습니다. 여기에 포스트 그레스를 사용하여 그의 대답의 업데이트 버전은 다음과 같습니다 http://sqlfiddle.com/#!12/6b1a7/1
sgeddes의 대답의 두 번째 부분은 포스트 그레스에 대한 작업 (바이올린 용도의 MySQL)을하지 않습니다. 여기에 포스트 그레스를 사용하여 그의 대답의 업데이트 버전은 다음과 같습니다 http://sqlfiddle.com/#!12/6b1a7/1
DELETE FROM Photos AS P1 USING Photos AS P2 WHERE P1.id > P2.id AND P1.merchant_id = P2.merchant_id AND P1.url = P2.url;
-
==============================
3.나는 당신을 위해 몇 가지 옵션을 참조하십시오.
나는 당신을 위해 몇 가지 옵션을 참조하십시오.
그것을하는 빠른 방법은이 같은 사용 무언가 (당신이 (234)를 여러 번 위의 언급대로 ID 열이 고유하지 가정) :
CREATE TABLE tmpPhotos AS SELECT DISTINCT * FROM Photos; DROP TABLE Photos; ALTER TABLE tmpPhotos RENAME TO Photos;
여기에 SQL 바이올린입니다.
당신은 어떤이있는 경우 테이블에 다시 제약 조건을 추가해야합니다.
귀하의 ID 열이 고유 경우 가장 낮은 ID를 유지하는 것처럼, 당신은 뭔가를 할 수 :
DELETE FROM P1 USING Photos P1, Photos P2 WHERE P1.id > P2.id AND P1.merchant_id = P2.merchant_id AND P1.url = P2.url;
그리고 바이올린.
from https://stackoverflow.com/questions/14471179/find-duplicate-rows-with-postgresql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 체크 ADD와 함께 제약 조건 CHECK 제약 대를 추가 CONSTRAINT 다음 (0) | 2020.05.31 |
---|---|
[SQL] 어떻게 첫 번째 행에 가입하세요 (0) | 2020.05.31 |
[SQL] MySQL의 여러 하나 개의 쿼리에서 조인? (0) | 2020.05.31 |
[SQL] 인덱스 대 고유 제한 조건을 POSTGRES (0) | 2020.05.31 |
[SQL] 추가 된 문자열 CONCAT가 작동하지 필드에서 SQL UPDATE는 모든 값 (0) | 2020.05.31 |