🐬 MySQL/MySQL 키워드

DISTINCT 키워드 마스터하기 : SQL에서 유니크한 값만 추출하기

itstory(Booho) 2024. 12. 1. 18:43
728x90

2024.12.01 - [데이터베이스/MySQL 실습문제] - LIKE , LIMIT, DISTINCT, CASE문키워드를 이용한 연습문제 각각 5개씩

 

LIKE , LIMIT, DISTINCT, CASE문키워드를 이용한 연습문제 각각 5개씩

문제풀이용 데이터베이스 SQL파일 다운로드 LIKE 예습 문제특정 도메인을 가진 이메일 검색이메일이 example.com 도메인으로 끝나는 직원들의 정보를 출력하는 SQL 문을 작성하세요.더보기SELECT * FROM

boohoday.com

 

SQL DISTINCT : 중복 제거의 마법

  SQL에서 매우 유용한 키워드인 DISTINCT에 대해 알아보겠습니다.

  DISTINCT는 결과 집합에서 중복된 행을 제거하는 간단하면서도 강력한 도구입니다.

 

DISTINCT란 무엇인가요?

  DISTINCT 키워드는 SELECT 문에서 사용되며, 결과에서 중복된 행을 제거합니다.

  쉽게 말해, "이 열에서 서로 다른 값들만 보여주세요"라고 요청하는 것과 같습니다.

 

기본 사용법

  DISTINCT의 가장 기본적인 형태는 이렇습니다.

SELECT DISTINCT column_name
FROM table_name;

 

실사용 예시

  고유한 도시 목록 추출하기

SELECT DISTINCT city
FROM customers;

  이 쿼리는 고객 테이블에서 중복 없는 도시 목록을 불러옵니다.

 

  여러 열에 DISTINCT 적용하기

SELECT DISTINCT country, city
FROM customers;

  이 쿼리는 국가와 도시의 고유한 조합을 불러옵니다.

 

  NULL 값 처리

SELECT DISTINCT COALESCE(department, 'Unassigned') AS department
FROM employees;

  이 쿼리는 부서 목록을 불러오며, NULL 값은 'Unassigned'로 대체합니다.

 

DISTINCT의 고급 활용

  COUNT와 함께 사용하기

SELECT COUNT(DISTINCT product_category) AS unique_categories
FROM products;

  이 쿼리는 제품 카테고리의 고유한 개수를 불러옵니다.

 

  서브쿼리에서 사용하기

SELECT *
FROM orders
WHERE customer_id IN (
	SELECT DISTINCT customer_id 
    FROM customers 
    WHERE country = 'USA');

  이 쿼리는 미국 고객의 주문만 불러옵니다. 

 

  GROUP BY와의 차이점

SELECT DISTINCT department, 
	COUNT(*) OVER (PARTITION BY department) AS emp_count
FROM employees;

  DISTINCT는 결과 집합 전체에 적용되지만, GROUP BY는 각 그룹에 대해 하나의 행을 불러옵니다.

  이 쿼리는 각 부서와 해당 부서의 직원 수를 불러옵니다.

 

주의사항

  1. 성능 : 대량의 데이터에서 DISTINCT는 시간이 오래 걸릴 수 있습니다.
  2. 정렬 : DISTINCT는 결과를 정렬하지 않습니다. 정렬이 필요하면 ORDER BY를 사용하세요.
  3. 모든 열에 적용 : DISTINCT는 SELECT 문에 나열된 모든 열의 조합에 적용됩니다.

 

728x90