SQLDSQL 활용중복 삭제난이도 3MCQ

SQLD 중복 삭제 기출문제 #3757

문제

이름이 중복된 데이터 중 각 이름별로 가장 작은 ID만 남기고 나머지를 삭제하려고 한다. DELETE 조건으로 가장 적절한 것은?

① WHERE ID NOT IN (SELECT MIN(ID) FROM T GROUP BY NAME) ② WHERE ID NOT IN (SELECT MAX(ID) FROM T GROUP BY ID) ③ WHERE ID NOT IN (SELECT MAX(ID) FROM T GROUP BY NAME) ④ WHERE ID IN (SELECT MAX(ID) FROM T GROUP BY ID)

정답

1

해설

정답: 1. 각 NAME 그룹별 MIN(ID)를 남기고 나머지를 삭제하려면 ID가 그룹별 MIN(ID)에 포함되지 않는 행을 삭제한다.

오답 풀이

  • 1번: 이름별 최소 ID만 보존하는 조건이다.
  • 2번: ID로 GROUP BY하면 각 ID 자체가 반환되어 중복 제거 목적에 맞지 않는다.
  • 3번: 이름별 최대 ID를 남기는 조건이므로 문제 의도와 다르다.
  • 4번: ID별 MAX(ID)는 사실상 모든 ID가 대상이 될 수 있어 부적절하다.

보충 개념 중복 데이터 삭제에서는 보존 기준을 먼저 정해야 한다. 보통 그룹별 MIN(ID) 또는 MAX(ID)를 남기고 나머지를 삭제한다.

SQLD 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] 중복 삭제 SQL 활용 기출 #3757 | 문어CBT