반응형
--5)서브 쿼리
--SQL문 내에서 메인쿼리가 아닌 하위에 존재하는 쿼리를 만한다.
--서브쿼리를 활용함으로써 다양한 결과를 도출 할 수있다.
--RENTAL_RATE의 평균구하기
SELECT AVG(RENTAL_RATE)
FROM FILM;
--RENTAL_RATE의 평균 보다 큰 RENTAL_RATE집합 구하기
SELECT FILM_ID, TITLE, RENTAL_RATE
FROM FILM F
WHERE RENTAL_RATE > 2.98;
--위 2개의 SQL을 결합하여 하나의 SQL문으로 결과를 도출할수 없을까?
--있다! 중첩 서브쿼리,인라인 뷰, 스칼라 서브쿼리가 존재한다.
--(1)중첩 서브쿼리 -> WHERE 절에 존재
SELECT FILM_ID, TITLE, RENTAL_RATE
FROM FILM F
WHERE RENTAL_RATE >
( --중첩 서브쿼리의 시작
SELECT AVG(RENTAL_RATE)
FROM FILM
); --중첩 서브쿼리의 종료
--(2)인라인 뷰 -> FROM절에 존재
SELECT A.FILM_ID, A.TITLE, A.RENTAL_RATE
FROM FILM A,
( --인라인뷰 시작
SELECT AVG(RENTAL_RATE) AS AVG_RENTAL_RATE
FROM FILM F
) B
WHERE A.RENTAL_RATE > B.AVG_RENTAL_RATE; --인라인뷰 종료
--(3)스칼라 서브쿼리 @@어려운딩
SELECT A.FILM_ID, A.TITLE, A.RENTAL_RATE
FROM
( --인라인뷰 시작
SELECT A.FILM_ID, A.TITLE, A.RENTAL_RATE,
( --스칼라 서브쿼리 시작
SELECT AVG(L.RENTAL_RATE)
FROM FILM L
)AS AVG_RENTAL_RATE --스칼라 서브쿼리 종료
FROM FILM A
) A --인라인뷰 종료
WHERE A.RENTAL_RATE > A.AVG_RENTAL_RATE;
반응형
'DataBase' 카테고리의 다른 글
[postgreSQL] [그룹함수] GROUPING SETS, ROLLUP, CUBE (0) | 2021.09.15 |
---|---|
[postgreSQL] ANY 연산자, ALL 연산자,EXISTS 연산자 (0) | 2021.09.15 |
[postgreSQL] INTERSECT, EXCEPT (0) | 2021.09.14 |
[postgreSQL][집합연산자] UNION, UNION ALL (0) | 2021.09.14 |
[postgreSQL] GROUP BY, HAVING 절 (0) | 2021.09.14 |
댓글