데이터 베이스/SQL 첫걸음(인프런 강의)

Ch04. 조회와 정렬 - Distinct

webmaster 2025. 10. 17. 22:25
728x90

데이터를 조회하다 보면, 우리가 원하지 않는 중복된 값들이 계속 나타나는 경우가 있다. 이럴 어떻게 유일한 값들만 깔끔하게 추려낼 있을까?

 

Distinct

DISTINCT는 SELECT문에서 컬럼 이름 바로 앞에 붙여 사용하며, 조회된 결과에서 중복된 행을 모두 제거하고 유일 한(unique) 값 남겨준다.

select distinct customer_id
from orders;

  • 각 고객 ID가 한번씩만 나타난다.
    • 1 , 2 , 3 번 고객이 우리 쇼핑몰에서 주문을 했다는 사실을 명확하게 알 수 있다

여러 컬럼에 DISTINCT 적용하기

DISTINCT 하나의 컬럼에만 사용할 있는 것이 아니다. 여러 개의 컬럼을 대상으로도 사용할 있다. 경우, 지정된 모든 컬럼의 조합 유일한 것들만 보여준다.

 

예를 들어 "어떤 고객이 어떤 상품을 구매했는지 조합을 중복 없이 보고 싶다" 새로운 요청이 왔다고 가정

select customer_id, product_id
from orders
order by customer_id, product_id;

  • (2, 2)라는 조합이 2번 나타난다.

Distinct로 제거

select distinct customer_id, product_id
from orders
order by customer_id, product_id;

  • 결과를 보면, 중복이었던 (2, 2) 행이 하나로 합쳐져 총 4개의 유일한 '고객-상품' 조합만 남은 것을 확인할 수 있다.
실무 팁
실무에서 DISTINCT는 데이터를 탐색하고 분석할 때 많이 사용된다. "우리 서비스에는 어떤 종류의 고객들이 있지?", "판매된 상품의 카테고리는 총 몇 가지지?"와 같이 데이터의 '종류'를 파악할 때 아주 유용하다.
다만 한 가지 기억해야 할 점이 있다. `DISTINCT` 는 결과를 보여주기 전에 내부적으로 중복을 제거하기 위한 과정을 거쳐야 한다. 따라서 데이터가 아주 많은 경우 일반적인 `SELECT` 보다 성능이 저하될 수 있다. 대량의 데이터라면 성능을 확인할 필요가 있다. 물론, 대부분의 경우에는 크게 문제 되지 않으니 걱정 말고 사용해도 괜찮다.
728x90