본문 바로가기
Programming

SQL에서 중복을 제거하고 데이터를 조회

by 느리게 걷는 즐거움 2024. 5. 31.
반응형

SQL에서 중복을 제거하고 데이터를 조회하는 방법

데이터베이스에서 데이터를 조회할 때, 중복된 데이터를 제거하는 것은 매우 중요합니다. SQL은 중복된 데이터를 제거하기 위한 다양한 기능을 제공합니다. 이번 글에서는 SQL에서 중복을 제거하는 방법에 대해 자세히 알아보겠습니다.

 DISTINCT 키워드 사용

가장 기본적인 중복 제거 방법은 `DISTINCT` 키워드를 사용하는 것입니다. `DISTINCT`는 지정된 열의 중복된 값을 제거하고 고유한 값만 반환합니다.

예제

`employees` 테이블에서 각 부서의 고유한 이름을 조회하고자 할 때, 다음과 같이 작성할 수 있습니다.

SELECT DISTINCT department
FROM employees;
결과
department
HR
IT
Sales

이 쿼리는 `department` 열의 고유한 값만 반환합니다.

GROUP BY 절 사용

`GROUP BY` 절을 사용하면 지정된 열을 기준으로 그룹화된 데이터를 조회할 수 있습니다. 이를 통해 중복된 행을 그룹화하고 각 그룹에 대해 집계 함수(예: `COUNT`, `SUM`, `AVG` 등)를 사용할 수 있습니다.

예제

`employees` 테이블에서 각 부서별 직원 수를 조회하고자 할 때, 다음과 같이 작성할 수 있습니다:

SELECT department, COUNT(*)
FROM employees
GROUP BY department;
결과
department COUNT(*)  
HR 1  
IT 3  
Sales 1  

이 쿼리는 각 `department`별로 그룹화하고, 각 그룹 내의 행 수를 반환합니다.

DISTINCT와 COUNT의 조합

특정 열의 고유한 값의 개수를 조회하고자 할 때, `DISTINCT`와 `COUNT`를 조합하여 사용할 수 있습니다.

예제

`employees` 테이블에서 고유한 부서의 개수를 조회하고자 할 때, 다음과 같이 작성할 수 있습니다:

SELECT COUNT(DISTINCT department)
FROM employees;

 

결과
COUNT(DISTINCT department)
3

이 쿼리는 `department` 열의 고유한 값의 개수를 반환합니다.

중복된 데이터 확인하기

중복된 데이터를 확인하고자 할 때는 `GROUP BY`와 `HAVING` 절을 사용하여 특정 열의 중복된 값과 중복 횟수를 조회할 수 있습니다.

예제

`employees` 테이블에서 중복된 이름을 가진 직원들을 조회하고자 할 때, 다음과 같이 작성할 수 있습니다:

SELECT name, COUNT(*)
FROM employees
GROUP BY name
HAVING COUNT(*) > 1;
결과
name COUNT(*)
David 2

이 쿼리는 `name` 열을 기준으로 그룹화하고, 그룹 내의 행 수가 2개 이상인 이름을 반환합니다.






반응형