특정 컬럼이 아니라, SELECT에 나온 “전체 컬럼 조합”을 기준으로 중복을 제거

1. 기본 예제


1) 단일 컬럼

SELECT DISTINCT member FROM rentals;

2) 여러 컬럼

SELECT DISTINCT member, book_id  FROM rentals;

⇒ member는 같지만 book_id가 다르면 = 다른 행

⇒ 둘 다 같으면 = 중복

2. DISTINCT 내부 동작 개념


  1. SELECT 결과를 전부 확인
  2. 결과 행들을 정렬하거나 해시
  3. 완전히 동일한 행 제거

⇒ 정렬/메모리 비용 발생

⇒ 데이터가 많을수록 비용이 높음