[SQL] 어떻게 SQL과 중복 행을 삭제하려면?
SQL어떻게 SQL과 중복 행을 삭제하려면?
나는 몇 가지 행이있는 테이블이 있습니다. 모든 행은 날짜 필드가 있습니다. 지금, 그것은 날짜의 중복 될 수 있습니다. 나는 모든 중복을 삭제하고 오직 최고 ID로 행을 저장해야합니다. 어떻게 가능 이것은 SQL 쿼리를 사용한다?
지금:
date id
'07/07' 1
'07/07' 2
'07/07' 3
'07/05' 4
'07/05' 5
내가 원하는 것은 :
date id
'07/07' 3
'07/05' 5
해결법
-
==============================
1.
DELETE FROM table WHERE id NOT IN (SELECT MAX(id) FROM table GROUP BY date);
-
==============================
2.그래서 여기 사람이 같은 문제를 가로 질러 오는 경우 답변으로 제 의견입니다, 코멘트 권한이 없습니다 :
그래서 여기 사람이 같은 문제를 가로 질러 오는 경우 답변으로 제 의견입니다, 코멘트 권한이 없습니다 :
동일한 쿼리는 다음과 같이 보일 것이다, 그래서 sqlite3를에서 "ROWID"라는 암시 숫자 기본 키가 있습니다 :
DELETE FROM table WHERE rowid NOT IN (SELECT MAX(rowid) FROM table GROUP BY date);
그것은 "ID"라는 기본 키 열을 포함하지 않는 경우에도이 어떤 테이블에 함께 작동합니다.
-
==============================
3.MySQL은, PostgreSQL을 들어, 오라클 좋은 방법은 자기 가입이다.
MySQL은, PostgreSQL을 들어, 오라클 좋은 방법은 자기 가입이다.
Postgresql: DELETE FROM table t1 USING table t2 WHERE t1.date=t2.date AND t1.id<t2.id; MySQL DELETE FROM table USING table, table as vtable WHERE (table.id < vtable.id) AND (table.date=vtable.date)
SQL 집계 (기준 최대 그룹) 기능은 거의 항상 매우 느리다.
from https://stackoverflow.com/questions/1173963/how-to-delete-duplicate-rows-with-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MySQL의 : LIKE의 역 버전은 무엇입니까? (0) | 2020.04.15 |
---|---|
[SQL] 나는 날짜 시간으로는 SQL 서버 2008 DateTimeOffset으로 변환 할 수있는 방법 (0) | 2020.04.15 |
[SQL] 포스트 그레스 데이터 형식 캐스트 (0) | 2020.04.15 |
[SQL] 어떻게 SQL에서 여러 문자를 교체하는 방법? (0) | 2020.04.15 |
[SQL] MySQL의에서 INTERSECT (0) | 2020.04.15 |