Coding Test/SQL

Programmers] ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„ ๊ฐ€์žฅ ๋น„์‹ผ ์‹ํ’ˆ์˜ ์ •๋ณด ์กฐํšŒํ•˜๊ธฐ

littlezero48 2023. 4. 6. 13:52

๋ฌธ์ œ

๐Ÿ“Œ MySQL ์œผ๋กœ ํ’€์ด

 

๐Ÿ“Œ ๋ฌธ์ œ ๋งํฌ :

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๐Ÿ“Œ ๋ฌธ์ œ ์„ค๋ช… :

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

 

๐Ÿ“Œ ํ…Œ์ด๋ธ” :

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

PRODUCT_ID VARCHAR(10) FALSE
PRODUCT_NAME VARCHAR(50) FALSE
PRODUCT_CD VARCHAR(10) TRUE
CATEGORY VARCHAR(10) TRUE
PRICE NUMBER TRUE

ํ’€์ด

์ถ”์ธก) 

๋จผ์ € ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„ ์ตœ๊ณ ๊ฐ’์„ ์„œ๋ธŒ์ฟผ๋ฆฌ๊ณ  ๊ฒ€์ƒ‰ํ•˜๊ณ  where์ ˆ๋กœ ์ด์™€ ์ผ์น˜ํ•˜๋Š” row๋ฅผ ์ฐพ์•„ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰

 

์ฟผ๋ฆฌ) 

* 1์ฐจ) ์„ฑ๊ณต

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

 

๋ฆฌ๋ทฐ) 

 

WHERE์—์„œ IN ์—ฐ์‚ฐ์ž ์“ธ๋•Œ () ์•ˆ์— ์ปฌ๋Ÿผ์„ ๋งž์ถฐ์ฃผ๋ฉด ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ผ์น˜ํ•˜๋Š” ๊ฑธ ์ฐพ์•„์ค„ ์ˆ˜ ์žˆ๋‹ค. 

 

IN ์—ฐ์‚ฐ์ž๋Š” ๋‹ค์ค‘ํ–‰ ์—ฐ์‚ฐ์ž๋กœ ๋‹ค์ค‘ํ–‰ ์—ฐ์‚ฐ์ž์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. 

์—ฐ์‚ฐ์ž ๊ธฐ   ๋Šฅ
IN  ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฒฐ๊ณผ ์ค‘ ํ•˜๋‚˜๋งŒ ์ผ์น˜ํ•˜๋ฉด ์ฐธ
ANY  ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฒฐ๊ณผ ์ค‘์— ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒƒ์ด ํ•˜๋‚˜ ์ด์ƒ ์žˆ์œผ๋ฉด ์ฐธ
(=ANY๋Š” IN๊ณผ ๋™์ผ, ํ•˜์ง€๋งŒ ์กฐ๊ฑด์— >= ๋“ฑ์˜ ๋ถ€๋“ฑํ˜ธ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด IN๊ณผ ๋‹ฌ๋ผ์ง)
ALL ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฒฐ๊ณผ์— ์กฐ๊ฑด์ด ๋งž์œผ๋ฉด ์ฐธ