본문 바로가기
programming/DataManage

mysql SELECT DISTINCT 조회 결과의 중복 제거 방법 using mysql select distinct query statement

by 개코 - 개발과 코딩 2022. 4. 25.

mysql에서 SELECT 의 DISTICT 옵션은 특정 컬럼에 대한 중복되는 데이터를 제거해 주는 역할을 한다. 같은 데이터가 2번 3번 이상 나오는 것을 단 1번만 나오게 하는 효과를 볼 수 있다. 단 몇가지의 데이터라면 상관없지만 업무적인 경우 특정 항목들이 나오는 경우가 많기 때문에 DISTINCT 옵션은 많이 사용된다.

mysql SELECT DISTINCT 조회 결과의 중복 제거 방법
using mysql SELECT DISTINCT query statemenet

mysql에서 테이블을 조회할 때 특정 컬럼의 데이터만 조회할 일이 있다.

이 때 중복되는 데이터들이 나온다면 중복을 제거하여 보고 싶을 때가 있는데 이 때 DISTICT 명령어를 사용하면 중복된 데이터를 제거할 수 있다.

즉, 2개 3개 이상의 같은 데이터가 중복되어 나온다면 DISTINCT 명령어로 하나의 데이터로 표현할 수 있다.

조회결과 중복제거 DISTINCT

mysql 에서 테이블을 조회하는 명령어는 SELECT 이다. 이 명령어로 테이블에 있는 컬럼들의 데이터를 조회할 수 있는데 특정 컬럼의 데이터만을 조회하고자 한다면 컬럼명을 콤마와 함께 작성해 주면 된다.

이 때 컬럼들의 내용이 중복되어 나온다면 보는 것도 조금 불편하기 때문에 중복된 데이터는 제거할 필요가 있다.

SELECT 다음에 DISTINCT 옵션을 주면 중복된 데이터들이 제거되어 조회되는 것을 볼 수 있다.

아래는 SELECT 명렁어에 DISTINCT 옵션을 준 구문이다.

SELECT DISTINCT 컬럼명
  FROM 테이블명
;

샘플코드

위의 내용으로 mysql 에서 중복제거하는 예제를 만들어 본다.

이번에도 테이블의 생성부터 제거까지 모두 작성하였다.

중복된 데이터를 나타내기 위해 5개 정도의 데이터를 입력하였다.

DISTINCT 의 중복제거 예시를 위해 SELECT 구문와 SELECT DISTICT 구문을 같이 사용해 본다.

/** tb_sample 테이블을 생성 */
CREATE TABLE tb_sample (
	idx INT,
	company VARCHAR(250),
	title VARCHAR(250),
	content TEXT,
	insert_date DATETIME,
	update_date DATETIME
)
;

/** tb_sample 테이블에 데이터 추가  */
INSERT INTO tb_sample
( idx, company, title, content, insert_date, update_date )
VALUES
( '1', '현대자동차', '제목1', '내용1', NOW(), NOW() )
;
INSERT INTO tb_sample
( idx, company, title, content, insert_date, update_date )
VALUES
( '2', '기아자동차', '제목2', '내용2', NOW(), NOW() )
;
INSERT INTO tb_sample
( idx, company, title, content, insert_date, update_date )
VALUES
( '3', '현대자동차', '제목3', '내용3', NOW(), NOW() )
;
INSERT INTO tb_sample
( idx, company, title, content, insert_date, update_date )
VALUES
( '4', '기아자동차', '제목4', '내용4', NOW(), NOW() )
;
INSERT INTO tb_sample
( idx, company, title, content, insert_date, update_date )
VALUES
( '5', '쌍용자동차', '제목5', '내용5', NOW(), NOW() )
;

SELECT * FROM tb_sample
;

SELECT DISTINCT company FROM tb_sample
;

/** tb_sample 테이블 데이터 삭제  */
DELETE FROM tb_sample
;

/** tb_sample 테이블 데이터 완전 삭제  */
TRUNCATE tabLE tb_sample
;

/** tb_sample 테이블 삭제  */
DROP TABLE tb_sample
;

/*-----*/

결과 화면을 보자.

5개 정도의 데이터에서 특정 컬럼인 company 컬럼을 조회한다.

하지만, 데이터가 중복되어 보기가 불편하다. 순서대로 정렬해도 중복되는 것은 마찬가지이다.

SELECT DISTICT 옵션을 주어 중복을 제거하면 데이터를 보는 것이 한결 수월해 진다.

반응형

댓글