_Han_
나의 개발 노트
_Han_
  • 분류 전체보기 (272)
    • 데이터 엔지니어링 (29)
    • 인프라 (3)
    • 추천시스템 (11)
    • 코딩테스트 (146)
    • 부트캠프 회고 (15)
    • 회고 (4)
    • 자격증 (1)
    • 파이썬 프로그래밍 (6)
    • 통계 (2)
    • Git (21)
    • 유니티2D (33)

최근 글

반응형
hELLO · Designed By 정상우.
_Han_

나의 개발 노트

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

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

2022. 12. 6. 17:01
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

SELECT P.PRODUCT_ID, P.PRODUCT_NAME, (P.PRICE*SUM(O.AMOUNT)) AS TOTAL_SALES
FROM FOOD_PRODUCT P
JOIN FOOD_ORDER O ON P.PRODUCT_ID = O.PRODUCT_ID
WHERE DATE_FORMAT(O.PRODUCE_DATE, '%Y-%m') = '2022-05'
GROUP BY P.PRODUCT_ID
ORDER BY TOTAL_SALES DESC, P.PRODUCT_ID ASC

WHERE문에서 DATE_FORMAT()함수를 통하여 2022년 5월 데이터만 추출하였습니다.

 

이때 총매출(TOTAL_SALES)를 구하기 위하여 FOOD_PRODUCT 테이블과 FOOD_ORDER 테이블을 JOIN하였습니다.

그리고 GROUP BY문에서 PRODUCT_ID 기준으로 그룹화를 진행하고 FOOD_ORDER 테이블의 AMOUNT을 SUM한 값을 구하였습니다.

 

AMOUNT를 SUM한 이유는 아래와 같습니다.

ID DATE AMOUNT
1 2022-05-01 5
1 2022-05-02 10

위의 표 처럼 같은 ID이며 2022년 5월의 데이터지만 DAY값이 달라서 AMOUNT값이 여러개인 데이터가 존재하기 때문에

AMOUNT를 모두 더해주어야 하기 때문에 SUM을 사용하였습니다.

 

마지막으로 SUM(AMOUNT)와 PRICE를 곱하여 TOTAL_SALES를 구해주고

ORDER BY문에서 TOTAL_SALES를 기준으로 내림차순, PRODUCT_ID를 오름차순 정렬하여 출력하였습니다.

 

 

반응형

'코딩테스트' 카테고리의 다른 글

[코딩테스트] 프로그래머스 우유와 요거트가 담긴 장바구니 MySQL  (0) 2022.12.07
[코딩테스트] 프로그래머스 식품분류별 가장 비싼 식품의 정보 조회하기 MySQL  (1) 2022.12.06
[코딩테스트] 프로그래머스 헤비 유저가 소유한 장소 MySQL  (0) 2022.12.05
[코딩테스트] 프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 MySQL  (0) 2022.12.05
[코딩테스트] 프로그래머스 조건별로 분류하여 주문상태 출력하기 MySQL  (0) 2022.12.04
    '코딩테스트' 카테고리의 다른 글
    • [코딩테스트] 프로그래머스 우유와 요거트가 담긴 장바구니 MySQL
    • [코딩테스트] 프로그래머스 식품분류별 가장 비싼 식품의 정보 조회하기 MySQL
    • [코딩테스트] 프로그래머스 헤비 유저가 소유한 장소 MySQL
    • [코딩테스트] 프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 MySQL
    _Han_
    _Han_
    학습한 것을 기록합니다.

    티스토리툴바