코테/프로그래머스

[프로그래머스/Lv. 4] 5월 식품들의 총매출 조회하기(MySQL)

imname1am 2023. 10. 11. 14:28
반응형

🔺 문제

 

프로그래머스

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

programmers.co.kr

 

🔺 코드

1
2
3
4
5
6
7
SELECT P.PRODUCT_ID, P.PRODUCT_NAME,
        SUM(P.PRICE * O.AMOUNT) AS TOTAL_SALES
FROM FOOD_PRODUCT P
JOIN FOOD_ORDER O ON P.PRODUCT_ID = O.PRODUCT_ID
WHERE O.PRODUCE_DATE LIKE '2022-05%' -- DATE_FORMAT(PRODUCE_DATE, '%Y-%m') = '2022-05'로 해도 같음
GROUP BY P.PRODUCT_ID
ORDER BY TOTAL_SALES DESC, P.PRODUCT_ID ASC;
cs

 

 

🧩  해결 아이디어

• SELECT문

: FOOD_PRODUCT 테이블에서 PRODUCT_ID, PRODUCT_NAME 값을 가져오고,

FOOD_PRODUCTD의 PRICE * FOOD_ORDER의 AMOUNT한 값을 TOTAL_SALES로 이름을 설정해 값을 가져온다.

 

• JOIN문

: FOOD_ORDER 테이블에서 PRODUCT_ID가 같은 객체의 값을 가져온다.

 

• WHERE문

: FOOD_ORDER 테이블에서 생산일(PRODUCE_DATE)가 '2022년 5월' 인 객체를 가져온다.

 

• GROUP BY문

: 상품명 별로 묶는다.

 

• ORDER BY

: 문제에서 원하는대로 TOTAL_SALES를 내림차순으로, PRODUCT_ID를 오름차순으로 출력하도록 설정한다.

 

 


💬 느낀 점

GROUP BY랑 WHERE절 순서를 뒤집어 써서 틀렸었다.......

SQL문 작성 순서는 아래 글을 참고하자..

 

[SQL] SQL 구문(문법) 순서 - select, from, where, group by, having, order by

SQL 구문 순서 SQL 구문의 순서는 먼저 다음과 같습니다. SELECT 컬럼명 --------------------- (5) FROM 테이블명 ------------------- (1) WHERE 테이블 조건 --------------- (2) GROUP BY 컬럼명 -------------------- (3) HAVING 그

data-make.tistory.com

 

 

1회독 2회독 3회독 4회독 5회독
V        

(참고)

 

[프로그래머스] SQL 문제풀이 - 5월 식품들의 총매출 조회하기

https://school.programmers.co.kr/learn/courses/30/lessons/131117 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞

whdgus928.tistory.com

 

반응형