728x90
๋ฐ์ํ
๐ฝ๏ธ 5์ ์ํ๋ค์ ์ด๋งค์ถ ์กฐํํ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/131117
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก์ Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
๐ ๋ฌธ์ ์์ฝ
- FOOD_PRODUCT์ FOOD_ORDER ํ ์ด๋ธ์ด ์ฃผ์ด์ง
- 2022๋
5์์ ์์ฐ๋ ์ํ๋ค์
์ํ ID
,์ด๋ฆ
,์ด๋งค์ถ
์ ๊ตฌํ๊ธฐ - ์ด๋งค์ถ = ๊ฐ๊ฒฉ × ์ฃผ๋ฌธ๋
- ์ ๋ ฌ ์กฐ๊ฑด: ์ด๋งค์ถ ๋ด๋ฆผ์ฐจ์,
์ด๋งค์ถ์ด ๊ฐ์ผ๋ฉด
์ํ ID
์ค๋ฆ์ฐจ์
๐ง ํ์ด ํ๋ฆ
FOOD_ORDER
ํ ์ด๋ธ์์PRODUCE_DATE
๊ฐ 2022๋ 5์์ธ ๋ฐ์ดํฐ๋ง ํํฐ๋งGROUP BY
๋ก ์ํ ID๋ณ ์ด ์ฃผ๋ฌธ ์๋์ ๊ตฌํจFOOD_PRODUCT
์ ์กฐ์ธํด์ ๊ฐ๊ฒฉ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ์ด๋งค์ถ = ๊ฐ๊ฒฉ × ์๋
๊ณ์ฐ- ์กฐ๊ฑด์ ๋ง๊ฒ ์ ๋ ฌ
๐ป ์ต์ข SQL ์ฝ๋
SELECT
O.PRODUCT_ID,
P.PRODUCT_NAME,
O.AMOUNT * P.PRICE AS TOTAL_SALES
FROM (
SELECT
PRODUCT_ID,
SUM(AMOUNT) AS AMOUNT
FROM FOOD_ORDER
WHERE DATE_FORMAT(PRODUCE_DATE, '%Y-%m') = '2022-05'
GROUP BY PRODUCT_ID
) O
JOIN FOOD_PRODUCT P
ON O.PRODUCT_ID = P.PRODUCT_ID
ORDER BY
TOTAL_SALES DESC,
O.PRODUCT_ID ASC;
๐ ํฌ์ธํธ ์ ๋ฆฌ
DATE_FORMAT(PRODUCE_DATE, '%Y-%m')
→ MySQL์์ ์ฐ-์๋ง ์ถ์ถํ ๋ ์ฌ์ฉ- ์๋ธ์ฟผ๋ฆฌ๋ก ์ฃผ๋ฌธ ์๋์ ๋จผ์ ์ง๊ณํ๊ณ , ๋ฐ๊นฅ์์ ๊ฐ๊ฒฉ ๊ณฑํด์ฃผ๋ ๋ฐฉ์
- ์ ๋ ฌ์
ORDER BY ์ด๋งค์ถ DESC, PRODUCT_ID ASC
โจ ๊ฒฐ๊ณผ ์์
PRODUCT_ID | PRODUCT_NAME | TOTAL_SALES |
---|---|---|
P0017 | ๋ง์๋๋ค๊ธฐ๋ฆ | 17380000 |
P0019 | ๋ง์๋์นด๋๋ผ์ | 10200000 |
728x90
๋ฐ์ํ
๋๊ธ