database

[SQL] DISTINCT와 GROUP BY 차이

keepgoing 2023. 4. 14. 16:47

DISTINCT와 GROUP BY는 둘 다 SELECT 쿼리에서 중복된 값을 제거하는 데 사용된다.

그러나 그들 간에는 중요한 차이점이 있다.

DISTINCT는 SELECT 쿼리 결과에서 중복된 값을 제거하는 데 사용된다. 즉, 결과 집합에서 중복된 값을 제거하여 반환하는 것이다.

반면에 GROUP BY는 열 값을 그룹화하고 집계 함수 (SUM, AVG, COUNT 등)를 사용하여 그룹화된 결과를 반환하는 데 사용된다. 즉, 결과 집합을 그룹화하고 그룹화된 데이터의 집계 값을 계산하는 것이다.

 

아직 잘 이해가 되지 않는다. 

 

예시 코드와 결과를 보면 쉽게 이해가 가능하다.

 

아래는 MySQL에서 DISTINCT와 GROUP BY를 사용하는 간단한 예시 코드이다.

 

예를 들어, 다음과 같은 "customers" 테이블이 있다고 가정해보자.

 

customer_id customer_name city
1 John New York
2 Jane London
3 David Paris
4 John Berlin
5 Jane Sydney

DISTINCT 사용

SELECT DISTINCT customer_name FROM customers;

위 쿼리의 결과는 아래와 같다.

 

customer_name
John
Jane
David

GROUP BY 사용

SELECT customer_name, COUNT(*) FROM customers GROUP BY customer_name;

위 쿼리의 결과는 아래와 같다.

 

 

customer_name COUNT(*)
John 2
Jane 2
David 1

 

이처럼 GROUP BY를 사용하면 고유한 값을 그룹화하고 각 그룹의 집계 값을 계산할 수 있다.