IT 소스/MariaDB

[MariaDB] SQL 쿼리 - DISTINCT, GROUP BY

한량이야기 2023. 1. 31. 08:26
반응형

안녕하세요. 경제적, 시간적 자유를 꿈꾸는 한량입니다.

 

예문 테이블을 가지고 DISTINCTGROUP BY의 사용법과 어떻게 동작하는지 알아보겠습니다.

CREATE TABLE class ( name VARCHAR(20), score INT );

INSERT INTO class VALUES 
('BILL', 70), 
('KIM', 50), 
('ROSE', 70), 
('SALLY', 60), 
('AMY', 80), 
('DAVID', 60), 
('NANCY', 90);

 

1.  DISTINCT 칼람명

중복을 제거하고 싶은 칼람명 앞에 적어주면 한건의 데이터만 반환합니다.

SELECT DISTINCT score FROM class;

// 실행 결과
score|
-----+
   70|
   50|
   60|
   80|
   90|

 

2.  GROUP BY 칼람명

중복된 값을 하나의 그룹으로 묶어서 반환해 줍니다.

SELECT score FROM class GROUP BY score;

// 실행 결과
score|
-----+
   50|
   60|
   70|
   80|
   90|

 

위 두 방법 모두 score의 점수 중 중복된 '60'과 '70'을 한 번씩만 반환하였습니다. 

 

DISTINCT와 GROUP BY의 차이점은

DISTINCT : 중복만 제거해 주고 조회 결과를 그대로 반환합니다.

GROUP BY : 중복 결과를 하나로 묶고 정렬을 해서 반환합니다.

 

속도면에서는 DISTINCT가 조금 빠르게 작동하지만

개발상황에 맞게 사용하시면 됩니다. 

 

반응형