[프로그래머스] 5월 식품들의 총매출 조회하기

당당·2023년 7월 5일
0

프로그래머스

목록 보기
229/245

https://school.programmers.co.kr/learn/courses/30/lessons/131117

📔문제

다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블 입니다. FOOD_PRODUCT 테이블은 아래와 같은 구조로 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE 는 식품 ID, 식품 이름, 식품코드, 식품분류, 식품 가격을 의미합니다.

Column nameTypeNullable
PRODUCT_IDVARCHAR(10)FALSE
PRODUCT_NAMEVARCHAR(50)FALSE
PRODUCT_CDVARCHAR(10)TRUE
CATEGORYVARCHAR(10)TRUE
PRICENUMBERTRUE

FOOD_ORDER 테이블은 다음과 같으며 ORDER_ID, PRODUCT_ID, AMOUNT, PRODUCE_DATE, IN_DATE, OUT_DATE, FACTORY_ID, WAREHOUSE_ID는 각각 주문 ID, 제품 ID, 주문량, 생산일자, 입고일자, 출고일자, 공장 ID, 창고 ID를 의미합니다.

Column nameTypeNullable
ORDER_IDVARCHAR(10)FALSE
PRODUCT_IDVARCHAR(5)FALSE
AMOUNTNUMBERFALSE
PRODUCE_DATEDATETRUE
IN_DATEDATETRUE
OUT_DATEDATETRUE
FACTORY_IDVARCHAR(10)FALSE
WAREHOUSE_IDVARCHAR(10)FALSE

FOOD_PRODUCTFOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요.


📝예시

FOOD_PRODUCT 테이블이 다음과 같고

PRODUCT_IDPRODUCT_NAMEPRODUCT_CDCATEGORYPRICE
P0011맛있는콩기름CD_OL00001식용유4880
P0012맛있는올리브유CD_OL00002식용유7200
P0013맛있는포도씨유CD_OL00003식용유5950
P0014맛있는마조유CD_OL00004식용유8950
P0015맛있는화조유CD_OL00005식용유8800
P0016맛있는참기름CD_OL00006식용유7100
P0017맛있는들기름CD_OL00007식용유7900
P0018맛있는고추기름CD_OL00008식용유6100
P0019맛있는카놀라유CD_OL00009식용유5100
P0020맛있는산초유CD_OL00010식용유6500

FOOD_ORDER 테이블이 다음과 같을 때

ORDER_IDPRODUCT_IDAMOUNTPRODUCE_DATEIN_DATEOUT_DATEFACTORY_IDWAREHOUSE_ID
OD00000056P001210002022-04-042022-04-212022-04-25FT19980002WH0032
OD00000057P001425002022-04-142022-04-272022-05-01FT19980002WH0033
OD00000058P001712002022-05-192022-05-282022-05-28FT20070002WH0033
OD00000059P001710002022-05-242022-05-302022-05-30FT20070002WH0038
OD00000060P001920002022-05-292022-06-082022-06-08FT20070002WH0035

SQL을 실행하면 다음과 같이 출력되어야 합니다.

PRODUCT_IDPRODUCT_NAMETOTAL_SALES
P0017맛있는들기름17380000
P0019맛있는카놀라유10200000

🧮분야

  • GROUP BY

📃SQL 코드

select b.product_id, b.product_name, price*amount as total_sales
from (select product_id,sum(amount) as amount
     from food_order
      where to_char(produce_date,'YYYY-MM')='2022-05'
     group by product_id) a, food_product b
where a.product_id=b.product_id
order by total_sales desc, product_id;

📰출력 결과


📂고찰

2022년 5월에 생산된 product_id별로 amount의 합계를 구한 테이블과 food_product를 join 한 후 price*amount 계산을 하면 된다.

profile
MySQL DBA 신입 지원

0개의 댓글