안녕하세요. SQLER의 코난 김대우입니다. 
이번 강좌에서는, 2-6. DISTINCT 문을 이용한 중복 제거를 진행 하겠습니다.


SQLER에서 진행되는, 챗GPT와 함께 배우는 SQL Server 강좌 목록

 

이번에 진행할 강좌는 중복 제거 - DISTINCT입니다.

 

 

 

TL;DR

DISTINCT 구문을 이용해 로우 데이터 중복을 제거할 수 있습니다. NULL 이 있을 경우 하나의 NULL만 DISTINCT로 나타납니다.

 

 

중복 데이터

SELECT Color FROM Production.Product;

 

위의 쿼리를 실행해 보세요. 504개의 데이터가 들어 있을 겁니다. 데이터를 살펴보면 Color에 중복 데이터가 보입니다. 중복을 제거하고 고유한(unique) 항목만 보는 방법은 없을까요?

 

중복 제거 DISTINCT

SQL에서 중복을 제거할 때 DISTINCT를 사용합니다. 

SELECT DISTINCT Color FROM Production.Product;

 

Python pands에 익숙하시면 drop_duplicates()와 같은 역할을 합니다. 


☑️ 챗GPT 활용: Python pands drop_duplicates에 대해서 알려줘

 

참고링크: Python 머신러닝 강좌 - 9. 중복데이터와 결측값(missing value) 처리

 


하나의 컬럼이 아니라 두 개나 그 이상의 컬럼 DISTINCT는 어떨까요?

-- Color 컬럼 DISTINCT
SELECT DISTINCT Color FROM Production.Product;

-- ReorderPoint 컬럼 DISTINCT
SELECT DISTINCT ReorderPoint FROM Production.Product;

-- 두 개 컬럼 DISTINCT
SELECT DISTINCT Color, ReorderPoint FROM Production.Product;

 

더 많은 여러 개의 컬럼에서  본다면 어떨까요? 컬럼이 많아지면 로우의 값들은 고유합니다. 그럼 어떻게 될까요?

SELECT * FROM Production.Product;

 

쿼리를 수행하면 테이블의 여러 컬럼이 리턴됩니다. 결과를 보면 중복되는 로우가 없습니다.

SELECT DISTINCT * FROM Production.Product;

 

이렇게 수행해도 같은 결과가 나옵니다. 모든 컬럼의 로우들을 비교하면? 중복값이 없기 때문입니다. (기본키 제약이나 UNIQUE 제약 때문이며, 이후 강좌에서 진행합니다.)

 

NULL 값 DISTINCT

로우에 NULL로 값이 지정되지 않았을 경우, 여러 개의 NULL이 있어도 하나의 NULL만 DISTINCT 결과로 나타나게 됩니다. NULL로 인해 의도하지 않은 DISTINCT가 나올 수도 있으니 주의해야 합니다.


실제 업무에서 DISTINCT는 이후에 배울 그룹 된 결과셋(GROUP BY) 등 여러 형태로 조합되어 사용할 경우가 많습니다. 도움 되시길 바랍니다.
 

 

SQL 강좌 책 구매

강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다. 

 

책구매 링크: 챗GPT와 함께하는 마이크로소프트 SQL Server 2022 

책구매링크.png

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 34051
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 17174
2234 SQL강좌: 2-12. SQL UNION 연산자 코난(김대우) 2023.08.18 78
2233 SQL강좌: 2-11. SELECT INTO - 쿼리 결과를 테이블로 복사 코난(김대우) 2023.08.18 120
2232 SQL강좌: 2-10. 하위 쿼리(Subquery-서브쿼리) 코난(김대우) 2023.08.18 95
2231 SQL강좌: 2-9. JOIN - 테이블 연결 file 코난(김대우) 2023.08.18 171
2230 SQL강좌: 2-8. GROUP BY, ROLLUP, CUBE 코난(김대우) 2023.08.18 152
2229 SQL강좌: 2-7. ORDER BY 결과 정렬 코난(김대우) 2023.08.18 108
» SQL강좌: 2-6. DISTINCT 문을 이용한 중복 제거 코난(김대우) 2023.08.18 119
2227 SQL강좌: 2-5. WHERE절의 조건에 의한 행의 검색 코난(김대우) 2023.08.18 115
2226 SQL강좌: 2-4. 데이터형(Data type)과 함수(Function) 코난(김대우) 2023.08.18 166
2225 SQL강좌: 2-3. SELECT - 컬럼선택 file 코난(김대우) 2023.08.18 205
2224 SQL강좌: 2-2. 데이터 검색 - SELECT 구문 file 코난(김대우) 2023.08.18 182
2223 SQL강좌: 2-1. T-SQL SQL Server 언어에 대한 간단한 소개 file 코난(김대우) 2023.08.18 172
2222 SQL강좌: 1-11. 예제 데이터베이스 설치 코난(김대우) 2023.08.18 229
2221 SQL강좌: 1-10. SQL Server 2022 관리 도구 소개 [2] file 코난(김대우) 2023.08.18 128
2220 SQL강좌: 1-9. 업그레이드와 설치 제거 file 코난(김대우) 2023.08.18 72
2219 SQL강좌: 1-8. SQL Server 2022 설치 - 컨테이너 file 코난(김대우) 2023.08.18 85
2218 SQL강좌: 1-7. SQL Server 2022 설치 - 리눅스 file 코난(김대우) 2023.08.18 118
2217 SQL강좌: 1-6. SQL Server 2022 설치 - 윈도 [2] file 코난(김대우) 2023.08.18 277
2216 SQL강좌: 1-5. SQL클라우드와 On-Premise file 코난(김대우) 2023.08.18 127
2215 SQL강좌: 1-4. SQL Server 설치 전 점검사항 file 코난(김대우) 2023.08.18 116





XE Login