[SQL] 집합 연산자 - MINUS

·2025년 7월 8일
0

SQL

목록 보기
85/126

select ename, sal, job, deptno
 from emp
 where deptno in (10,20)
minus
select ename, sal, job, deptno
 from emp
 where deptno in (20,30);

문제1. 2017년도에 있었던 카페베네 매장인데 2022년도에는 사라진 카페베네 매장의 상가업소번호, 상호명, 지점명을 출력하시오

select 상가업소번호, 상호명, 지점명
 from market_2017
 where 상호명 like '%카페베네%'  and 시도명 ='서울특별시'
minus
 select 상가업소번호, 상호명, 지점명
 from market_2022
 where 상호명 like '%카페베네%'  and 시도명 ='서울특별시';

문제2. 위에서 출력되고 있는 데이터 건수가 어떻게 되는지 확인하시오

select count(*)
from ( 
select 상가업소번호, 상호명, 지점명
 from market_2017
 where 상호명 like '%카페베네%'  and 시도명 ='서울특별시'
minus
 select 상가업소번호, 상호명, 지점명
 from market_2022
 where 상호명 like '%카페베네%'  and 시도명 ='서울특별시' );

관련 ocp 문제.

보기 분석:

  • A. INTERSECT → 두 테이블에 모두 존재하는 행만 출력 → ❌
  • B. UNION ALL → 두 테이블의 모든 행을 중복 포함하여 결합 → ❌
  • C. UNION → 두 테이블의 모든 행을 중복 없이 결합 → ❌
  • D. SUBTRACT → 일부 DBMS(예: IBM DB2)에서는 사용되지만, Oracle에서는 SUBTRACT라는 연산자는 없음 → ❌
  • E. MINUSSALES1 - SALES2, 즉 SALES1에는 있지만 SALES2에는 없는 행을 출력 → ✅ 정답

✅ 정답: E. MINUS

0개의 댓글