Growth ๐ŸŒณ/Practice ๐Ÿ’ป

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์กฐ๊ฑด๋ณ„๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ ์ฃผ๋ฌธ์ƒํƒœ ์ถœ๋ ฅํ•˜๊ธฐ

์ธ” 2022. 12. 22. 16:09

๐Ÿ“ข ๋ณธ ํฌ์ŠคํŒ…์— ํ™œ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๋ฌธ์ œ ๋ฐ ์ž๋ฃŒ ์ถœ์ฒ˜๋Š”

       ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต,   
      https://school.programmers.co.kr/learn/challenges?page=1&languages=mysql%2Coracle
์ž„์„ ๋ฐํž™๋‹ˆ๋‹ค.

 


โ–  ๋ฌธ์ œ

๋ฌธ์ œ์„ค๋ช…

๋‹ค์Œ์€ ์‹ํ’ˆ๊ณต์žฅ์˜ ์ฃผ๋ฌธ์ •๋ณด๋ฅผ ๋‹ด์€ FOOD_ORDER ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. FOOD_ORDER ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ ORDER_ ID, PRODUCT_ID, AMOUNT, PRODUCE_DATE, IN_DATE,OUT_DATE,FACTORY_ID, WAREHOUSE_ID๋Š” ๊ฐ๊ฐ ์ฃผ๋ฌธ ID, ์ œํ’ˆ ID, ์ฃผ๋ฌธ์–‘, ์ƒ์‚ฐ์ผ์ž, ์ž…๊ณ ์ผ์ž, ์ถœ๊ณ ์ผ์ž, ๊ณต์žฅ ID, ์ฐฝ๊ณ  ID๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Column name Type Nullable
ORDER_ID VARCHAR(10) FALSE
PRODUCT_ID VARCHAR(5) FALSE
AMOUNT NUMBER FALSE
PRODUCE_DATE DATE TRUE
IN_DATE DATE TRUE
OUT_DATE DATE TRUE
FACTORY_ID VARCHAR(10) FALSE
WAREHOUSE_ID VARCHAR(10) FALSE

 


 

๋ฌธ์ œ

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


โ–  ํ’€์ด

  ๋ฌธ์ œ ์š”๊ตฌ์‚ฌํ•ญ  

FOOD_ORDER ํ…Œ์ด๋ธ”์—์„œ 5์›” 1์ผ์„ ๊ธฐ์ค€์œผ๋กœ ์ฃผ๋ฌธ ID, ์ œํ’ˆ ID, ์ถœ๊ณ ์ผ์ž, ์ถœ๊ณ ์—ฌ๋ถ€๋ฅผ ์กฐํšŒ               > ๋‚ ์งœ ์กฐ๊ฑด1

์ถœ๊ณ ์—ฌ๋ถ€๋Š” 5์›” 1์ผ๊นŒ์ง€ ์ถœ๊ณ ์™„๋ฃŒ๋กœ ์ด ํ›„ ๋‚ ์งœ๋Š” ์ถœ๊ณ  ๋Œ€๊ธฐ๋กœ ๋ฏธ์ •์ด๋ฉด ์ถœ๊ณ ๋ฏธ์ •์œผ๋กœ ์ถœ๋ ฅ *

> ๊ธฐ์กด ์ถœ๊ณ ์ผ์ž(OUT_DATE) ์ปฌ๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ '์ถœ๊ณ ์—ฌ๋ถ€' ์ปฌ๋Ÿผ ์ƒ์„ฑ์ด ํ•„์š”ํ•จ.

๊ฒฐ๊ณผ๋Š” ์ฃผ๋ฌธ ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ                                                                                                             > ์ •๋ ฌ์กฐ๊ฑด1

 

 * CASE๋ฌธ ํ™œ์šฉํ•ด์„œ '์ถœ๊ณ ์—ฌ๋ถ€' ์ปฌ๋Ÿผ ์ƒ์„ฑํ•˜๊ธฐ

 5์›” 1์ผ๊นŒ์ง€ ์ถœ๊ณ ์™„๋ฃŒ¹๋กœ ์ด ํ›„ ๋‚ ์งœ๋Š” ์ถœ๊ณ  ๋Œ€๊ธฐ²๋กœ ๋ฏธ์ •์ด๋ฉด ์ถœ๊ณ ๋ฏธ์ •³

 

 3๋ฒˆ ์กฐ๊ฑด๊นŒ์ง€ '๊ธฐ๊ฐ„'์ด 3๊ตฌ๊ฐ„์ด ์•„๋‹Œ 3๋ฒˆ ์กฐ๊ฑด์€ ๋ถ€ํ•ฉ ์—ฌ๋ถ€๊ฐ€ ๊ฒฐ์ธก์น˜์ด๋ฏ€๋กœ ์ด ๋ฌธ์ œ์—์„œ CASE WHEN ์กฐ๊ฑด์€ ํŠน๋ณ„ํžˆ ๋จผ์ € ์‹คํ–‰์‹œ์ผœ์•ผ ํ•  ์กฐ๊ฑด์ด ์—†์–ด 1,2,3 ์ˆœ์„œ๋Œ€๋กœ ์ž‘์„ฑํ•˜์˜€๋‹ค.

SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE,
CASE WHEN DATE_FORMAT(OUT_DATE, '%Y-%m-%d') <= '2022-05-01' THEN '์ถœ๊ณ ์™„๋ฃŒ' 
     WHEN DATE_FORMAT(OUT_DATE, '%Y-%m-%d') > '2022-05-01' THEN '์ถœ๊ณ ๋Œ€๊ธฐ'
     ELSE '์ถœ๊ณ ๋ฏธ์ •' END AS ์ถœ๊ณ ์—ฌ๋ถ€
 FROM FOOD_ORDER
 ORDER BY 1