반응형
Ch 05. SQL 기본 - 04. 서브쿼리
(1) 서브 쿼리 기본
SELECT MAX(LIST_PRICE) FROM PRODUCTS ; |
- LIST_PRICE의 최대값을 구함
SELECT PRODUCT_ID , PRODUCT_NAME , LIST_PRICE FROM PRODUCTS WHERE LIST_PRICE = 8867.99 ; |
- LIST_PRICE가 8867.99 인 행을 출력
SELECT PRODUCT_ID , PRODUCT_NAME , LIST_PRICE FROM PRODUCTS WHERE LIST_PRICE = ( SELECT MAX(LIST_PRICE) FROM PRODUCTS ); |
- LIST_PRICE가 최대값인 행을 출력
- 서브 쿼리를 이용하여 단 한 개의 SQL문으로 출력을 완료함
(2) 스칼라 서브 쿼리
SELECT A.PRODUCT_NAME , A.LIST_PRICE , ROUND( (SELECT AVG(K.LIST_PRICE) FROM PRODUCTS K WHERE K.CATEGORY_ID = A.CATEGORY_ID ), 2 ) AVG_LIST_PRICE FROM PRODUCTS A ORDER BY A.PRODUCT_NAME; |
- 각 제품의 가격을 구하면서 해당 제품이 위치하고 있는 제품 카테고리의 평균 가격도 같이 구함
- 이러한 방식으로 SELECT절 내에 사용하는 서브 쿼리를 스칼라 서브 쿼리라고 함
[] 서브 쿼리
(3) 인라인 뷰 서브 쿼리
SELECT ORDER_ID , ORDER_VALUE FROM ( SELECT ORDER_ID , SUM( QUANTITY * UNIT_PRICE ) ORDER_VALUE FROM ORDER_ITEMS GROUP BY ORDER_ID ORDER BY ORDER_VALUE DESC ) WHERE ROWNUM <= 10; |
- 제품의 단위 가격과 수량을 곱한 값을 ORDER_VALUE라고 한다.
- ORDER_VALUE 값을 기준으로 내림차순 정렬한다.
- WHERE ROWNUM 조건으로 정렬된 값 중에서 상위 10건을 뽑는다.
- FROM 절에 사용되는 SELECT문을 인라인 뷰라고 부른다.
- 인라인 뷰는 서브 쿼리의 종류 중 하나이며 인라인 뷰 서브 쿼리라고도 부른다.
반응형
'자격증 > 패스트 캠퍼스 데이터베이스와 SQLD 합격패스 Online' 카테고리의 다른 글
패스트 캠퍼스 챌린지 21일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.09.26 |
---|---|
패스트 캠퍼스 챌린지 20일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.09.25 |
패스트 캠퍼스 챌린지 18일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.09.23 |
패스트 캠퍼스 챌린지 17일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.09.22 |
패스트 캠퍼스 챌린지 16일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.09.21 |