๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
MYSQL

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.04] MYSQL 5์›” ์‹ํ’ˆ๋“ค์˜ ์ด๋งค์ถœ ์กฐํšŒํ•˜๊ธฐ

by hello_world.cpp 2025. 5. 19.
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 ์˜ค๋ฆ„์ฐจ์ˆœ

๐Ÿง  ํ’€์ด ํ๋ฆ„

  1. FOOD_ORDER ํ…Œ์ด๋ธ”์—์„œ PRODUCE_DATE๊ฐ€ 2022๋…„ 5์›”์ธ ๋ฐ์ดํ„ฐ๋งŒ ํ•„ํ„ฐ๋ง
  2. GROUP BY๋กœ ์‹ํ’ˆ ID๋ณ„ ์ด ์ฃผ๋ฌธ ์ˆ˜๋Ÿ‰์„ ๊ตฌํ•จ
  3. FOOD_PRODUCT์™€ ์กฐ์ธํ•ด์„œ ๊ฐ€๊ฒฉ ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ
  4. ์ด๋งค์ถœ = ๊ฐ€๊ฒฉ × ์ˆ˜๋Ÿ‰ ๊ณ„์‚ฐ
  5. ์กฐ๊ฑด์— ๋งž๊ฒŒ ์ •๋ ฌ

๐Ÿ’ป ์ตœ์ข… 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
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€