관리 메뉴

Life goes slowly...

[Mysql] Mysql의 중복 값 제거하기 - Select Distinct 본문

프로그래밍/MySQL

[Mysql] Mysql의 중복 값 제거하기 - Select Distinct

빨강소 2020. 11. 4. 16:33
728x90
반응형

 

 

DataBase의 테이블에 카테고리라는 칼럼들이 존재하며, 이러한 카테고리 값이 테이블에 여러 개 존재하고 있습니다. 이처럼 카테고리를 조회 시 테이블마다 값이 중복되는 경우가 있습니다. 이러한 중복되는 결과값을 제거하기 위한 SQL 문이 Distinct입니다.

Mysql의 범주 조회 시 사용되는 키워드 Distinct을 알아보도록 하겠습니다.

 

Mysql의 Select Distinct

Mysql의 중복제거 키워드인 SELECT Distinct를 사용하게 되면 지정된 칼럼명이 중복되지 않고 고유한 자료만 Row(레코드) 형태로 조회하게 됩니다.

 


//중복되는 컬럼제거후 조회 
SELECT DISTINCT 컬럼 FROM 테이블; 

//조건처리후에 중복되는 컬럼제거후 조회 
SELECT DISTINCT 컬럼 FROM 테이블 WHERE 조건식; 

//중복되는 컬럼 제거후 Count 조회 
SELECT COUNT(DISTINCT) 컬럼 FROM 테이블;

 

그렇다면 Distinct는 Group By는 어떠한 부분이 다를까요??

Group By는 Data 조회 시 내부적으로는 동일한 코드를 사용하게 되지만 Distinct는 Group By와 다르게 Data 조회 시 정렬된 결과를 보여주지 않습니다. 따라서 Group By는 중복되는 키워드를 제거하여 결과를 가져오는 동시에 Data의 정렬의 부가적인 작업을 하게 됨으로써 성능상 Distinct 보다 느리다고 볼 수 있습니다.

Data의 정렬이 필요하지 않는 이상 Group By보다는 Distinct가 성능상 더 빠르다고 할 수 있습니다.

 

728x90
반응형
Comments