๐Ÿ–ฅ๏ธ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/SQL

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

rtw0202 2026. 2. 10. 18:36

1. ๋ฌธ์ œ ์„ค๋ช…

๋‹ค์Œ์€ ์‹ํ’ˆ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ FOOD_PRODUCT ํ…Œ์ด๋ธ”๊ณผ ์‹ํ’ˆ์˜ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ๋‹ด์€ FOOD_ORDER ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. FOOD_PRODUCT ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ PRODUCT_IDPRODUCT_NAMEPRODUCT_CDCATEGORYPRICE๋Š” ์‹ํ’ˆ ID, ์‹ํ’ˆ ์ด๋ฆ„, ์‹ํ’ˆ์ฝ”๋“œ, ์‹ํ’ˆ๋ถ„๋ฅ˜, ์‹ํ’ˆ ๊ฐ€๊ฒฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

FOOD_ORDER ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ ORDER_ID, PRODUCT_IDAMOUNTPRODUCE_DATEIN_DATEOUT_DATEFACTORY_IDWAREHOUSE_ID๋Š” ๊ฐ๊ฐ ์ฃผ๋ฌธ ID, ์ œํ’ˆ ID, ์ฃผ๋ฌธ๋Ÿ‰, ์ƒ์‚ฐ์ผ์ž, ์ž…๊ณ ์ผ์ž, ์ถœ๊ณ ์ผ์ž, ๊ณต์žฅ ID, ์ฐฝ๊ณ  ID๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

FOOD_PRODUCT์™€ FOOD_ORDER ํ…Œ์ด๋ธ”์—์„œ ์ƒ์‚ฐ์ผ์ž๊ฐ€ 2022๋…„ 5์›”์ธ ์‹ํ’ˆ๋“ค์˜ ์‹ํ’ˆ ID, ์‹ํ’ˆ ์ด๋ฆ„, ์ด๋งค์ถœ์„ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ์ด๋งค์ถœ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์‹œ๊ณ  ์ด๋งค์ถœ์ด ๊ฐ™๋‹ค๋ฉด ์‹ํ’ˆ ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”.

 

2. ์ถœ๋ ฅ ์˜ˆ์‹œ

 

3. ๋ฌธ์ œ ๋‹ต์•ˆ

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 left(o.produce_date, 7) = '2022-05'
GROUP BY p.product_id, p.product_name
ORDER BY total_sales DESC, p.product_id ASC;