데이터 분석/SQL

[쉽게 쓴 SQL] 서브쿼리란?

참치바나나 2020. 11. 9. 12:22

메인쿼리가 아닌것. 종류로는 중첩 서브쿼리, 인라인 뷰, 스칼라 서브쿼리가 있다

메인 쿼리란,

SELECT 
	avg(f.rental_rate)
FROM 
	film f ;

이런 것. 

SELECT 
	f.film_id 
	,f.title 
	,f.rental_rate 
FROM 
	film f 
WHERE 
	f.rental_rate > 2.98;

또는 이런 것.

 

이걸 하나의 SQL문으로 만들 수 있을까?

 

중첩 서브쿼리

괄호를 써서 사용한다

SELECT 
	f.film_id 
	,f.title 
	,f.rental_rate 
FROM 
	film f 
WHERE 
	f.rental_rate > 
(
	SELECT 
		avg(f.rental_rate)
	FROM 
		film f 
);

 

인라인 뷰

from 절 내에 괄호에 있는 쿼리

SELECT 
	f.film_id 
	,f.title 
	,f.rental_rate 
FROM 
	film f
	, (
		SELECT
			avg(f2.rental_rate) AS avg_rental_rate
		FROM 
			film f2 
	) b
WHERE 
	f.rental_rate > b.avg_rental_rate;

 

스칼라 서브쿼리

select list 안에 존재하는 서브쿼리

SELECT
	f3.film_id 
	,f3.title
	,f3.rental_rate
FROM
( 
	SELECT
		f3.film_id 
		,f3.title 
		,f3.rental_rate 
		,(
			SELECT avg(f4.rental_rate)
			FROM film f4 
		) AS avg_rental_rate
	FROM 
		film f3 
) f3 
WHERE f3.rental_rate > f3.avg_rental_rate; 

 

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

[쉽게 쓴 SQL] EXISTS  (0) 2020.11.21
[쉽게 쓴 SQL] ANY 그리고 IN, ALL  (0) 2020.11.21
[쉽게 쓴 SQL] EXCEPT  (0) 2020.11.08
[쉽게 쓴 SQL] INTERSECT  (0) 2020.11.08
[쉽게 쓴 SQL] UNION + ALL  (0) 2020.11.06