
FOOD_PRODUCT
| Column name | TYPE | NULLABLE |
| PRODUCT_ID | VARCHAR(10) | FALSE |
| PRODUCT_NAME | VARCHAR(50) | FALSE |
| PRODUCT_CD | VARCHAR(10) | TRUE |
| CATEGORY | VARCHAR(10) | TRUE |
| PRICE | NUMBER | TRUE |
FOOD_ORDER
| Column name | TYPE | NULLABLE |
| ORDER_ID (주문 ID) | VARCHAR(10) | FALSE |
| PRODUCT_ID (제품 ID) | VARCHAR(5) | FALSE |
| AMOUNT (주문량) | NUMBER | FALSE |
| PRODUCE_DATE (생산일자) | DATE | TRUE |
| IN_DATE (입고일자) | DATE | TRUE |
| OUT_DATE (출고일자) | DATE | TRUE |
| FACTORY_ID (공장 ID) | VARCHAR(10) | FALSE |
| WAREHOUSE_ID (창고 ID) | VARCHAR(10) | FALSE |
- FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회.이때 결과는 총매출을 기준으로 내림차순 정렬, 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬
> FOOD_PRODUCT 테이블과 FOOD_ORDER 테이블을 JOIN 시켜주고 총 매출을 구하기 위해 SUM 함수를 사용
> SELECT P.PRODUCT_ID, P.PRODUCT_NAME,SUM(P.PRICE*O.AMOUNT) AS TOTAL_SALES
FROM FOOD_PRODUCT P
INNER JOIN FOOD_ORDER O ON (P.PRODUCT_ID = O.PRODUCT_ID) GROUP BY P.PRODUCT_ID,P.PRODUCT_NAME
> 생산일자가 2022년 5월인 식품을 조회
> WHERE TO_CHAR(PRODUCE_DATE,'YYYYMM') LIKE '202205'
SOL)
SELECT P.PRODUCT_ID, P.PRODUCT_NAME,SUM(P.PRICE*O.AMOUNT) AS TOTAL_SALES
FROM FOOD_PRODUCT P
INNER JOIN FOOD_ORDER O ON (P.PRODUCT_ID = O.PRODUCT_ID)
WHERE TO_CHAR(PRODUCE_DATE,'YYYYMM') LIKE '202205'
GROUP BY P.PRODUCT_ID,P.PRODUCT_NAME
ORDER BY TOTAL_SALES DESC, PRODUCT_ID ASC
'Oracle SQL(프로그래머스)' 카테고리의 다른 글
| 우유와 요거트가 담긴 장바구니 (LV.4) (0) | 2022.11.22 |
|---|---|
| 식품분류별 가장 비싼 식품의 정보 조회하기 (LV.4) (0) | 2022.11.22 |
| 보호소에서 중성화한 동물 (LV.4) (0) | 2022.11.21 |
| 즐겨찾기가 가장 많은 식당 정보 출력하기 (LV.3) (0) | 2022.11.21 |
| 헤비 유저가 소유한 장소(LV.3) (0) | 2022.11.18 |
댓글