IT 이야기/DB

[MSSQL] 중복 제거 조회 (distinct, group by)

하늘봉 2022. 9. 16. 12:00
반응형

SELECT문으로 데이터를 조회 시 중복된 값이 조회되는 경우가 있습니다.

중복된 값을 제거하고 조회할 수 있는 방법에 대해서 스크립트를 통해 소개해드리도록 하겠습니다.

 

우선 테스트할 테이블을 조회 합니다.

SELECT country 
FROM dbo.CUST_TABLE

국가(country) 컬럼에 중복된 값들이 조회되는 것을 확인할 수 있습니다.

 

 

그럼 이제 중복된 값들을 제거 해보겠습니다.

 

Distinct 

distinct 구문은 지정된 집합의 중복 튜플을 제거해서 결과 집합을 반환합니다.

SELECT distinct country 
FROM dbo.CUST_TABLE

쿼리 수행 시 중복 튜플이었던 denmark 와 germany가 한 개씩만 남고 사라지는 것을 확인할 수 있습니다.

 

 

이번에는 다른 방법으로 중복을 제거 해보겠습니다.

 

Group by

group by 절은 말 그대로 데이터를 그룹에 따라 묶을 수 있습니다.

만약에 country별로 그룹을 묶는다면 중복된 값들을 모두 제거한 것과 같은 결과를 반환합니다. 

SELECT country 
FROM dbo.CUST_TABLE
GROUP BY country

distinct 구문을 사용한 것과 결과가 같습니다.

 

 

group by는 다양한 집계 함수들과 함께 사용할 수 있습니다.

예를 들어 country별 데이터 건 수를 조회하고 싶으면 아래와 같이 쿼리하면 됩니다. 

SELECT country
     , count(*) as cnt
FROM dbo.CUST_TABLE
GROUP BY country

 

반응형