![](https://cphinf.pstatic.net/mooc/20240727_296/17220869987951yVYl_PNG/vOO1nbrCxvmw4Tc7tbd4.png?type=ff48_48)
안녕하세요 영상속에서 SUB QUERY를 사용한 해결방법이 아닌 JOIN을 사용하여 문제를 해결하는 방법을 올려보려합니다.
영상 속 16분 18초부터의 문제부터 시작됩니다.
/* 1. FROM절 서브쿼리를 활용하여, SALES 테이블의 PRODUCT_CODE별 판매수량을 구하시오.*/
/* FROM절 서브쿼리 / SUM 함수 활용 */
1. 기존의 SUB QUERY를 사용한 해결방법
SELECT * FROM ( SELECT PRODUCT_CODE ,SUM(SALES_QTY) AS 판매수량 FROM SALES GROUP BY PRODUCT_CODE )AS A;
2. JOIN을 사용한 해결방법 ★★★★★
SELECT A.PRODUCT_CODE, SUM(SALES_QTY) AS 판매수량 FROM SALES AS A LEFT JOIN PRODUCT AS B ON A.PRODUCT_CODE = B.PRODUCT_CODE GROUP BY A.PRODUCT_CODE;
/* 2. (1) 명령어를 활용하여, PRODUCT 테이블과 LEFT JOIN 하시오.*/
/* LEFT JOIN 활용 */
1. 기존의 SUB QUERY를 사용한 해결방법
SELECT * FROM ( SELECT PRODUCT_CODE ,SUM(SALES_QTY) AS 판매수량 FROM SALES GROUP BY PRODUCT_CODE )AS A LEFT JOIN PRODUCT AS B ON A.PRODUCT_CODE = B.PRODUCT_CODE;
2. JOIN을 사용한 해결방법 ★★★★★
CREATE TEMPORARY TABLE PRODUCT_TOTAL_SALES_QTY SELECT B.PRODUCT_CODE, SUM(SALES_QTY) AS 판매수량 FROM SALES AS A LEFT JOIN PRODUCT AS B ON A.PRODUCT_CODE = B.PRODUCT_CODE GROUP BY B.PRODUCT_CODE; SELECT * FROM PRODUCT_TOTAL_SALES_QTY AS A LEFT JOIN PRODUCT AS B ON A.PRODUCT_CODE = B.PRODUCT_CODE;
새로운 임시 테이블을 생성한 후 JOIN을 사용하여 해결하였습니다.
/* 3. (2) 명령어를 활용하여, 카테고리 및 브랜드별 판매수량을 구하시오.*/
/* GROUP BY절 / SUM 함수 활용*/
1. 기존의 SUB QUERY를 사용한 해결방법
SELECT CATEGORY ,BRAND ,SUM(판매수량) AS 판매수량 FROM ( SELECT PRODUCT_CODE ,SUM(SALES_QTY) AS 판매수량 FROM SALES GROUP BY PRODUCT_CODE )AS A LEFT JOIN PRODUCT AS B ON A.PRODUCT_CODE = B.PRODUCT_CODE GROUP BY CATEGORY ,BRAND;
2. JOIN을 사용한 해결방법 ★★★★★
SELECT CATEGORY, BRAND, SUM(판매수량) AS 판매수량 FROM PRODUCT_TOTAL_SALES_QTY AS A LEFT JOIN PRODUCT AS B ON A.PRODUCT_CODE = B.PRODUCT_CODE GROUP BY CATEGORY, BRAND;
코드가 보다 직관적인 것을 볼 수 있습니다.
++++ 수정 ★★★★★
임시테이블을 미리 생성하여 1번과 2번문제를 보다 간결하게 풀 수 있었습니다.
// 새로운 임시 테이블 생성 (중복된 코드) CREATE TEMPORARY TABLE PRODUCT_TOTAL_SALES_QTY SELECT A.PRODUCT_CODE, SUM(SALES_QTY) AS 판매수량 FROM SALES AS A LEFT JOIN PRODUCT AS B ON A.PRODUCT_CODE = B.PRODUCT_CODE GROUP BY A.PRODUCT_CODE; /* 1. FROM절 서브쿼리를 활용하여, SALES 테이블의 PRODUCT_CODE별 판매수량을 구하시오.*/ SELECT * FROM PRODUCT_TOTAL_SALES_QTY; /* 2. (1) 명령어를 활용하여, PRODUCT 테이블과 LEFT JOIN 하시오.*/ SELECT * FROM PRODUCT_TOTAL_SALES_QTY AS A LEFT JOIN PRODUCT AS B ON A.PRODUCT_CODE = B.PRODUCT_CODE; /* 3. (2) 명령어를 활용하여, 카테고리 및 브랜드별 판매수량을 구하시오.*/ SELECT CATEGORY, BRAND, SUM(판매수량) AS 판매수량 FROM PRODUCT_TOTAL_SALES_QTY AS A LEFT JOIN PRODUCT AS B ON A.PRODUCT_CODE = B.PRODUCT_CODE GROUP BY CATEGORY, BRAND;
comment