Growth ๐ŸŒณ/Practice ๐Ÿ’ป

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„ ๊ฐ€์žฅ ๋น„์‹ผ ์‹ํ’ˆ์˜ ์ •๋ณด ์กฐํšŒํ•˜๊ธฐ

์ธ” 2022. 12. 31. 18:26

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

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


โ–  ๋ฌธ์ œ

๋ฌธ์ œ ์„ค๋ช…

๋‹ค์Œ์€ ์‹ํ’ˆ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ FOOD_PRODUCT ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. FOOD_PRODUCT ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ PRODUCT_ID, PRODUCT_NAME, PRODUCT_ CD, CATEGORY, PRICE๋Š” ์‹ํ’ˆ ID, ์‹ํ’ˆ ์ด๋ฆ„, ์‹ํ’ˆ์ฝ”๋“œ, ์‹ํ’ˆ๋ถ„๋ฅ˜, ์‹ํ’ˆ ๊ฐ€๊ฒฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Column name Type Nullable
PRODUCT_ID VARCHAR(10) FALSE
PRODUCT_NAME VARCHAR(50) FALSE
PRODUCT_CD VARCHAR(10) TRUE
CATEGORY VARCHAR(10) TRUE
PRICE NUMBER TRUE

 

๋ฌธ์ œ

FOOD_PRODUCT ํ…Œ์ด๋ธ”์—์„œ ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„๋กœ ๊ฐ€๊ฒฉ์ด ์ œ์ผ ๋น„์‹ผ ์‹ํ’ˆ์˜ ๋ถ„๋ฅ˜, ๊ฐ€๊ฒฉ, ์ด๋ฆ„์„ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ์‹ํ’ˆ๋ถ„๋ฅ˜๊ฐ€ '๊ณผ์ž', '๊ตญ', '๊น€์น˜', '์‹์šฉ์œ '์ธ ๊ฒฝ์šฐ๋งŒ ์ถœ๋ ฅ์‹œ์ผœ ์ฃผ์‹œ๊ณ  ๊ฒฐ๊ณผ๋Š” ์‹ํ’ˆ ๊ฐ€๊ฒฉ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”.


โ–  ํ’€์ด

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

FOOD_PRODUCT ํ…Œ์ด๋ธ”์—์„œ ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„๋กœ ๊ฐ€๊ฒฉ์ด ์ œ์ผ ๋น„์‹ผ ์‹ํ’ˆ์˜ ๋ถ„๋ฅ˜, ๊ฐ€๊ฒฉ, ์ด๋ฆ„์„ ์กฐํšŒ 

> ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„(CATEGORY)๋กœ ์ตœ๊ณ ๊ฐ€๊ฒฉ๊ณผ ํ•ด๋‹น ์ƒํ’ˆ ์ด๋ฆ„์ด ๊ฐ™์ด ๋‹ค๋…€์•ผ ํ•จ. 

 

์ด๋•Œ ์‹ํ’ˆ๋ถ„๋ฅ˜๊ฐ€ '๊ณผ์ž', '๊ตญ', '๊น€์น˜', '์‹์šฉ์œ '์ธ ๊ฒฝ์šฐ๋งŒ ์ถœ๋ ฅ

> ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ์กฐ๊ฑด1 : ํฌํ•จ๋˜๋Š” ๋ฌธ์ž์—ด ์ฐพ๊ธฐ  IN ('๋ฌธ์ž์—ด1', '๋ฌธ์ž์—ด2', '๋ฌธ์ž์—ด3' ...)

 

๊ฒฐ๊ณผ๋Š” ์‹ํ’ˆ ๊ฐ€๊ฒฉ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ                                                                                               > ์ •๋ ฌ์กฐ๊ฑด1 

SELECT CATEGORY, PRICE AS MAX_PRICE,
       PRODUCT_NAME
 FROM FOOD_PRODUCT FP1
 WHERE PRICE = (SELECT MAX(PRICE)
                FROM FOOD_PRODUCT FP2
                WHERE FP1.CATEGORY = FP2.CATEGORY
                GROUP BY FP2.CATEGORY)
 AND CATEGORY IN ('๊ณผ์ž', '๊ตญ', '๊น€์น˜', '์‹์šฉ์œ ')
 ORDER BY 2 DESC