데이터 분석/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;