사람 테이블에서 이름별 가장 작은 ID 한 건만 남기고 중복 행을 삭제할 때 서브쿼리로 사용할 표현은?
정답 1번
이름별 중복에서 가장 작은 ID 한 건을 보존하려면 `GROUP BY name`으로 같은 이름을 묶고 각 그룹의 `MIN(id)`를 구해야 한다. 이 서브쿼리가 반환한 ID 집합은 남길 행의 키가 되며, 바깥 DELETE에서 `id NOT IN (...)` 조건으로 나머지를 삭제할 수 있다. MAX(id)는 가장 큰 ID를 남기고 GROUP BY id는 각 ID가 별도 그룹이 되어 이름 중복을 제거하지 못한다.
콘텐츠 정보
- 자료 유형
- 편집복원
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-08-21