SQL, DISTINCT 사용법 (중복 값 제거)

DISTINCT는 SQL에서 중복을 제거한 값을 얻고 싶을 때 SELECT문과 함께 사용합니다.

DISTINCT

예시 1) distinct를 사용하는 이유

예를 들어, 회사 직원 정보를 담은 employees 테이블에 아래와 같은 데이터가 있습니다.

 

employees 테이블

 

이때 회사의 직책(position)별로 인원을 파악하고 싶으면 distinct를 사용해 중복되지 않은 직책만 조회할 수 있습니다.

SELECT DISTINCT position FROM employees;

 

 

position 조회

 

만약 distinct를 사용하지 않으면 중복된 직책이 결과에 포함됩니다. 이처럼 중복된 값을 제거한 결과를 얻고 싶을 때 사용할 수 있습니다.

SELECT position FROM employees;

 

중복포함
Developer가 3행, Analyst가 2행 조회된다.

 

예시 2) 여러 컬럼에 distinct 사용

여러 컬럼에 대해 중복을 제거해서 조회하고 싶을 때도 distinct를 사용할 수 있습니다. 예를 들어, 아래와 같이 고유한 position과 department에 대해 조회할 수 있습니다.

SELECT DISTINCT position, department FROM employees;

 

distinct 여러개
distinct를 여러 컬럼에 적용한 경우엔 중복되지 않는 조합을 결과로 반환한다.

 

결과를 보면 알 수 있듯 distinct를 여러 컬럼에 사용하면 고유한 '조합'을 반환합니다. position 컬럼에 Analyst 값과 department 컬럼에 IT 값이 각 2번 나오는 것을 보고 언뜻 중복이 제거된 게 맞나 싶을 수 있지만, 자세히 보면 position과 department로 만들 수 있는 고유한 조합을 출력하는 것을 확인할 수 있습니다.

 

예시 3) count와 함께 사용한 distinct

count와 distinct를 함께 사용하면 중복이 제거된 값의 개수를 조회할 수 있습니다.

 

employees 테이블에서 순수하게 직책(position)의 개수를 조회하려면 아래와 같이 쿼리를 실행하면 됩니다.

SELECT COUNT(DISTINCT position) FROM employees;

 

반응형

댓글

Designed by JB FACTORY