본문 바로가기
카테고리 없음

SELECT문 중복된 값 제거 MINUS (차집합)

by kangs' tong 2023. 11. 29.

SELECT문 중복된 값 제거(MINUS)란?

SELECT문 중복된 값 제거(MINUS)는 SQL에서 사용되는 연산자 중 하나로, 두 개의 SELECT문의 결과에서 첫 번째 SELECT문의 결과에서 나온 데이터 중 두 번째 SELECT문의 결과에 존재하는 데이터를 제외한 데이터를 반환하는 연산을 수행합니다. 이를 일반적으로 차집합이라고도 부릅니다.

SELECT문 중복된 값 제거(MINUS)의 사용 예시

다음은 SELECT문 중복된 값 제거(MINUS)의 사용 예시입니다:

SELECT column1, column2, ...
FROM table1
MINUS
SELECT column1, column2, ...
FROM table2;

위의 예시에서 MINUS 연산자는 두 개의 SELECT문을 연결하며, 첫 번째 SELECT문의 결과에서 두 번째 SELECT문의 결과에 존재하는 데이터를 제외한 데이터를 반환합니다. 결과는 첫 번째 SELECT문에만 존재하는 데이터로 이루어집니다.

SELECT문 중복된 값 제거(MINUS)의 예시 설명

예를 들어, 다음과 같은 두 개의 테이블이 있다고 가정해봅시다:

Customers

CustomerID CustomerName
1 John
2 Jane
3 Sarah
4 Michael
5 David

Orders

OrderID CustomerID OrderDate
1 1 2020-01-01
2 3 2020-01-02
3 2 2020-01-03
4 1 2020-01-04
5 4 2020-01-05

이 때, Customers 테이블에서 Orders 테이블과 중복된 CustomerID 값을 제외한 결과를 반환하려면 다음과 같이 SELECT문 중복된 값 제거(MINUS)를 사용할 수 있습니다:

SELECT CustomerID, CustomerName
FROM Customers
MINUS
SELECT CustomerID, ''
FROM Orders;

위의 예시에서, 첫 번째 SELECT문은 Customers 테이블의 CustomerIDCustomerName 컬럼을 반환합니다. 두 번째 SELECT문은 Orders 테이블의 CustomerID와 공백('')을 반환합니다. 따라서, 첫 번째 SELECT문의 결과 중 두 번째 SELECT문의 결과에 포함된 데이터를 제외한 결과가 반환됩니다.

실행 결과는 다음과 같습니다:

CustomerID CustomerName
2 Jane
4 Michael
5 David

위의 결과에서는 Customers 테이블의 CustomerID 값 중 1과 3이 Orders 테이블의 CustomerID 값에도 존재하지만, MINUS 연산자를 사용하여 제외되었습니다.

마무리

이러한 방식으로 SELECT문 중복된 값 제거(MINUS) 연산자를 사용하여 첫 번째 SELECT문의 결과에서 두 번째 SELECT문의 결과에 중복된 값을 제외할 수 있습니다. 이를 통해 데이터베이스에서 필요한 정보만 추출하고 중복을 제거하여 사용자가 원하는 결과를 얻을 수 있습니다.

댓글