본문 바로가기
DataBase

[postgreSQL] 서브 쿼리 종류

by 바까 2021. 9. 14.
반응형
--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;
반응형

댓글