코딩 스쿨 SQL

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

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;

이 쿼리는 departmentjob_title의 조합이 고유한 값들만 반환합니다.

결과 예시:

department job_title
Sales Sales Manager
HR HR Manager
Engineering Developer
Marketing Content Writer

3. SELECT DISTINCT와 WHERE 절 사용

DISTINCTWHERE 절을 함께 사용하면, 특정 조건을 만족하는 데이터에서 중복을 제거할 수 있습니다.

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는 지정된 모든 열을 기준으로 고유한 행을 식별합니다. 즉, 한 열이 중복되어도 다른 열의 값이 다르면 중복으로 처리되지 않습니다.

예를 들어, departmentsalary 열을 조회할 때 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는 중복된 데이터를 제거하여 결과를 간결하고 유용하게 만들기 때문에, 데이터 분석 작업에서 자주 활용됩니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com