IT/MSSQL

[MSSQL] DISTINCT 중복제거

유자애플 2020. 6. 6. 23:07
반응형

Create Table #TEST1(

Name Varchar(20), --이름
age Int, --나이
Assets Int, --자산
Liabilities Int, --부채
job Nvarchar(10) --직업

)

Insert Into #TEST1 values ('이혜진(여자)', 28, 3000, 1300, '선생님')
Insert Into #TEST1 values ('이치현'(남자), 27, 5000, 1300, '학원강사')
Insert Into #TEST1 values ('이수정(여자)', 31, 2000, 2300, '선생님')
Insert Into #TEST1 values ('최덕희(남자)', 27, 1000, 3000, '연구원')
Insert Into #TEST1 values ('강남수(남자)', 36, 2000, 1400, '학원강사')

오늘은 DISTINCT 중복제거에 대해 배우려고 합니다.
오늘도 임시 테이블을 이용해 진행하려고 합니다. 

SELECT DISTINCT Liabilities
FROM #TEST1

다음 쿼리를 실행하면 부채가 중복되는 조건은 사라지고 중복되지 않는 부채만 출력됩니다.

SELECT DISTINCT age, Liabilities
FROM #TEST1

이번 쿼리를 실행할 경우 어떻게 될까요?
임시 테이블에서 Insert 한 내용에는 나이가 같은 사람도 있고 부채가 같은 사람도 있습니다.
하지만 위의 쿼리를 실행할 때 에 출력 물은 나이가 같다고 제거되지 않으며 부채가 같다고 해도 제거되지 않습니다.
나이도 같으면 부채도 같아야한 제거가 됩니다.

그러니 여기서 우리가 알아야하는 것은 "DISTINCT는 중복제거지만 출력하고자 하는 모든 컬럼이 동일하지 않다면 제거되지 않는다" 입니다.

이상 DISTINCT에 대해 알아봤습니다. 

반응형