tak's data blog
PostgreSQL 문제풀이 6 본문
문제
아래 SQL문은 EXCEPT 연산을 사용하여 재고가 없는 영화를 구하고 있다. 해당 SQL문은 EXCEPT연산을 사용하지 말고 같은 결과를 도출하라.
except 연산은 차집합 연산이기 때문에 빼주거나 다양한 방법이 있을 것 같았다. 처음에 left join을 생각해봤지만 다시 생각할 필요가 있었다.
1. film 테이블을 먼저 조회한다.
2. not exists 문을 사용하여 재고 존재하는 집합은 film집합에서 제외 시킨다.
여기서 select 1이란 해당 테이블의 갯수만큼 1로된 행을 출력한다는 뜻이다. 값의 존재유무를 우선시한다.
3. (같은결과를 반환하는 다른 문장)
4. (같은결과를 반환하는 다른 문장)
유의해야할 점 : 재고가 없는 집합을 찾기 위해서 not exists처럼 무언가 존재하지 않다면과 같은 연산이 중요하다.
'SQL' 카테고리의 다른 글
PostgreSQL 엑셀 데이터 연동 (0) | 2021.02.16 |
---|---|
PostgreSQL 문제풀이 7 (0) | 2021.02.08 |
PostgreSQL 문제풀이 5 (0) | 2021.01.26 |
PostgreSQL 문제풀이 4 (0) | 2021.01.23 |
PostgreSQL 문제풀이 3 (0) | 2021.01.23 |