기초 SQL입문
DISTINCT 중복 제거
결과에서 중복된 행을 제거하고 고유한 행만 반환하는 키워드
정의
결과 중에 똑같은 행이 여러 번 나올 때 한 번씩만 보여준다. "SELECT DISTINCT 부서" 라고 하면 부서 목록을 한 번씩만 가져온다. 중복 판단은 SELECT에 적은 모든 컬럼 조합을 기준으로 한다.
왜 중요한가?
중복된 결과를 제거할 때 쓰지만 남용하면 안 된다. 데이터가 많으면 모든 행을 비교해야 하므로 느려지고, 사실 JOIN 조건이 잘못되어 중복이 생긴 걸 DISTINCT로 가리는 경우가 많다. 중복의 원인을 먼저 찾는 게 우선이다.
틀리기 쉬운 포인트
예시
SELECT DISTINCT department_id FROM employees;
성능 포인트
!DISTINCT 남용은 JOIN 키 누락의 신호일 수 있다. 원인을 찾아 JOIN을 고치는 것이 우선.