SQL Select Distinct
SQL SELECT DISTINCT: 중복 제거하여 고유한 값 조회
SQL SELECT DISTINCT 문은 데이터베이스에서 특정 열의 중복된 값을 제거하고 고유한 값만 조회할 때 사용됩니다. 데이터를 조회할 때 여러 행이 동일한 값을 가질 수
있는데, DISTINCT
키워드를 사용하면 이러한 중복을 제거하고 결과에서 고유한 값들만 반환할 수 있습니다.
1. 기본 SELECT DISTINCT 문법
SELECT DISTINCT
의 기본 구조는 다음과 같습니다:
SELECT DISTINCT 열이름1, 열이름2, ...
FROM 테이블이름;
- 열이름: 중복을 제거할 열을 지정합니다. 두 개 이상의 열을 지정할 수 있습니다.
- 테이블이름: 데이터를 조회할 테이블의 이름입니다.
2. SELECT DISTINCT 예제
2.1 단일 열에서 중복 제거
다음은 employees
테이블에서 고유한 부서 목록을 조회하는 예제입니다.
SELECT DISTINCT department
FROM employees;
이 쿼리는 employees
테이블에서 중복된 부서 이름을 제거하고, 고유한 부서 목록만 반환합니다.
결과 예시:
department
Sales
HR
Engineering
Marketing
2.2 여러 열에서 중복 제거
여러 열을 대상으로 중복을 제거할 수도 있습니다. 다음은 employees
테이블에서 고유한 부서와 직급 조합을 조회하는 예제입니다.
SELECT DISTINCT department, job_title
FROM employees;
이 쿼리는 department
와 job_title
의 조합이 고유한 값들만 반환합니다.
결과 예시:
department | job_title |
---|---|
Sales | Sales Manager |
HR | HR Manager |
Engineering | Developer |
Marketing | Content Writer |
3. SELECT DISTINCT와 WHERE 절 사용
DISTINCT
와 WHERE 절을 함께 사용하면, 특정 조건을 만족하는 데이터에서 중복을 제거할 수 있습니다.
SELECT DISTINCT department
FROM employees
WHERE salary > 5000;
이 쿼리는 급여가 5,000 이상인 직원들이 속한 고유한 부서를 반환합니다.
4. SELECT DISTINCT와 ORDER BY 사용
ORDER BY
절과 함께 DISTINCT
를 사용하여 결과를 정렬할 수 있습니다. 다만, DISTINCT
는 중복을 제거한 후 결과를 반환하기
때문에, 정렬은 그 후에 적용됩니다.
SELECT DISTINCT department
FROM employees
ORDER BY department ASC;
이 쿼리는 중복된 부서명을 제거하고, 부서 이름을 오름차순으로 정렬하여 반환합니다.
5. SELECT DISTINCT와 COUNT() 사용
종종 DISTINCT
와 **COUNT()**를 함께 사용하여 고유한 값의 개수를 구할 수 있습니다.
SELECT COUNT(DISTINCT department)
FROM employees;
이 쿼리는 employees
테이블에서 고유한 부서의 수를 반환합니다.
결과 예시:
COUNT(DISTINCT department)
4
6. 주의사항: DISTINCT는 여러 열을 조합한 고유 값 처리
DISTINCT
는 지정된 모든 열을 기준으로 고유한 행을 식별합니다. 즉, 한 열이 중복되어도 다른 열의 값이 다르면 중복으로 처리되지 않습니다.
예를 들어, department
와 salary
열을 조회할 때 DISTINCT
를 사용하면, 같은 부서라도 급여가 다르면 중복으로 처리되지
않습니다.
SELECT DISTINCT department, salary
FROM employees;
7. 실전 예제
예제 1: 부서별 고유한 직급 조회
SELECT DISTINCT department, job_title
FROM employees
WHERE department = 'Sales';
이 쿼리는 Sales
부서에서 고유한 직급 목록을 반환합니다.
예제 2: 고유한 도시 목록 조회
SELECT DISTINCT city
FROM customers
WHERE country = 'USA';
이 쿼리는 customers
테이블에서 미국에 있는 고유한 도시 목록을 반환합니다.
요약
SQL SELECT DISTINCT는 데이터베이스에서 중복된 데이터를 제거하고 고유한 값을 조회하는 데 매우 유용한 도구입니다. 단일 열뿐만 아니라 여러 열을 결합하여 고유한
데이터를 조회할 수 있으며, WHERE, ORDER BY, COUNT()와 함께 사용하면 더욱 강력한 쿼리를 작성할 수 있습니다. DISTINCT
는 중복된 데이터를 제거하여 결과를
간결하고 유용하게 만들기 때문에, 데이터 분석 작업에서 자주 활용됩니다.