데이터 분석/SQL

[쉽게 쓴 SQL] EXCEPT

참치바나나 2020. 11. 8. 17:39

[연산] 집합 두 개 중에 1개에만 해당되는 내용을 보고 싶을 때

 

엄청나게 많이 쓰인다!

 

재고가 있는 film_id 와 이름을 추출하려면?

SELECT 
	DISTINCT f2.film_id,f2.title 
FROM 
	film f2 ,
	inventory i2 
WHERE 
	f2.film_id = i2.film_id
ORDER BY f2.film_id ;

958개의 결과가 있음

재고가 없는 film_id 와 이름을 추출하고 싶다

전체 필름 중에서 재고가 있는 것을 빼면 된다. 

'재고'라는 column이 있는 것이 아니므로, OUTER JOIN으로 '재고' IS NULL은 불가.

SELECT
	f3.film_id,
	f3.title
FROM
	film f3
EXCEPT
SELECT
	DISTINCT f2.film_id,
	f2.title
FROM
	film f2 ,
	inventory i2
WHERE
	f2.film_id = i2.film_id
ORDER BY
	film_id ;

 

'데이터 분석 > SQL' 카테고리의 다른 글

[쉽게 쓴 SQL] ANY 그리고 IN, ALL  (0) 2020.11.21
[쉽게 쓴 SQL] 서브쿼리란?  (0) 2020.11.09
[쉽게 쓴 SQL] INTERSECT  (0) 2020.11.08
[쉽게 쓴 SQL] UNION + ALL  (0) 2020.11.06
[쉽게 쓴 SQL] LAG, LEAD 함수  (0) 2020.11.06