๐ข ๋ณธ ํฌ์คํ ์ ํ์ฉ๋๋ ๊ธฐ๋ณธ ๋ฌธ์ ๋ฐ ์๋ฃ ์ถ์ฒ๋
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ
์คํธ ์ฐ์ต,
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