학습 자료
INTERSECT와 EXCEPT
INTERSECT와 EXCEPT는 두 개의 SELECT 쿼리 결과를 비교할 때 사용하는 집합 연산자입니다.
INTERSECT: 두 결과 집합에 모두 존재하는 행만 반환EXCEPT: 첫 번째 쿼리에는 있고 두 번째 쿼리에는 없는 행을 반환
문법
INTERSECT는 다음과 같이 두 쿼리의 결과를 비교할 때 사용할 수 있습니다.
INTERSECT 문법
SELECT column1, column2 FROM tableA INTERSECT SELECT column1, column2 FROM tableB;
EXCEPT의 문법도 유사하지만, 첫 번째 쿼리에는 있고 두 번째 쿼리에는 없는 행을 반환합니다.
EXCEPT 문법
SELECT column1, column2 FROM tableA EXCEPT SELECT column1, column2 FROM tableB;
규칙
- 두 쿼리는 동일한 열 개수를 반환해야 합니다.
- 각 열의 데이터 타입이 호환되어야 합니다.
- 최종 열 이름은 첫 번째 SELECT 쿼리에서 가져옵니다.
예시: 두 해의 사용자 데이터 비교
2023년과 2024년 가입자를 비교한다고 가정합니다.
users_2023
| user_id | name |
|---|---|
| 1 | 지민 |
| 2 | 서준 |
| 3 | 민서 |
users_2024
| user_id | name |
|---|---|
| 1 | 지민 |
| 3 | 민서 |
| 4 | 하준 |
INTERSECT 예시
INTERSECT 쿼리
SELECT user_id, name FROM users_2023 INTERSECT SELECT user_id, name FROM users_2024;
결과:
| user_id | name |
|---|---|
| 1 | 지민 |
| 3 | 민서 |
→ 2023년에만 가입한 사용자를 찾을 수 있습니다.
EXCEPT 예시
EXCEPT 쿼리
SELECT user_id, name FROM users_2023 EXCEPT SELECT user_id, name FROM users_2024;
결과:
| user_id | name |
|---|---|
| 2 | 서준 |
→ 2023년에만 가입한 사용자를 찾을 수 있습니다.
INTERSECT와 EXCEPT를 사용할 때는 어떠한 경우일까?
- 공통 데이터 찾기 → INTERSECT
- 한쪽에만 존재하는 데이터 찾기 → EXCEPT
- 데이터 비교, 변경 추적, 누락된 값 분석 등에 유용합니다.
Quiz
0 / 1
첫 번째 쿼리에는 존재하지만 두 번째 쿼리에는 없는 행을 찾으려면 어떤 SQL 연산을 사용하나요?
첫 번째 쿼리에는 존재하지만 두 번째 쿼리에는 없는 행을 찾으려면 연산을 사용합니다.
UNION
INTERSECT
EXCEPT
JOIN
학습 자료
AI 튜터
도움말
코드 에디터
코드 실행
코드 생성
DB 테이블 구조
실행 결과