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를 사용하면 고유한 값을 그룹화하고 각 그룹의 집계 값을 계산할 수 있다.