[프로그래머스/Lv. 4] 5월 식품들의 총매출 조회하기(MySQL)
🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
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