๐ข ๋ณธ ํฌ์คํ ์ ํ์ฉ๋๋ ๊ธฐ๋ณธ ๋ฌธ์ ๋ฐ ์๋ฃ ์ถ์ฒ๋
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ
์คํธ ์ฐ์ต,
https://school.programmers.co.kr/learn/challenges?page=1&languages=mysql%2Coracle์์ ๋ฐํ๋๋ค.
โ ๋ฌธ์
๋ฌธ์ ์ค๋ช
๋ค์์ ์์ด์คํฌ๋ฆผ ๊ฐ๊ฒ์ ์๋ฐ๊ธฐ ์ฃผ๋ฌธ ์ ๋ณด๋ฅผ ๋ด์ FIRST_HALF ํ ์ด๋ธ๊ณผ ์์ด์คํฌ๋ฆผ ์ฑ๋ถ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ ICECREAM_INFO ํ ์ด๋ธ์ ๋๋ค. FIRST_HALF ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, SHIPMENT_ID, FLAVOR, TOTAL_ ORDER ๋ ๊ฐ๊ฐ ์์ด์คํฌ๋ฆผ ๊ณต์ฅ์์ ์์ด์คํฌ๋ฆผ ๊ฐ๊ฒ๊น์ง์ ์ถํ ๋ฒํธ, ์์ด์คํฌ๋ฆผ ๋ง, ์๋ฐ๊ธฐ ์์ด์คํฌ๋ฆผ ์ด์ฃผ๋ฌธ๋์ ๋ํ๋ ๋๋ค. FIRST_HALF ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ FLAVOR์ ๋๋ค.
NAME | TYPE | NULLABLE |
SHIPMENT_ID | INT(N) | FALSE |
FLAVOR | VARCHAR(N) | FALSE |
TOTAL_ORDER | INT(N) | FALSE |
ICECREAM_INFO ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, FLAVOR, INGREDITENT_TYPE ์ ๊ฐ๊ฐ ์์ด์คํฌ๋ฆผ ๋ง, ์์ด์คํฌ๋ฆผ์ ์ฑ๋ถ ํ์ ์ ๋ํ๋ ๋๋ค. INGREDIENT_TYPE์๋ ์์ด์คํฌ๋ฆผ์ ์ฃผ ์ฑ๋ถ์ด ์คํ์ด๋ฉด sugar_based๋ผ๊ณ ์ ๋ ฅ๋๊ณ , ์์ด์คํฌ๋ฆผ์ ์ฃผ ์ฑ๋ถ์ด ๊ณผ์ผ์ด๋ฉด fruit_based๋ผ๊ณ ์ ๋ ฅ๋ฉ๋๋ค. ICECREAM_INFO์ ๊ธฐ๋ณธ ํค๋ FLAVOR์ ๋๋ค. ICECREAM_INFOํ ์ด๋ธ์ FLAVOR๋ FIRST_HALF ํ ์ด๋ธ์ FLAVOR์ ์ธ๋ ํค์ ๋๋ค.
NAME | TYPE | NULLABLE |
FLAVOR | VARCHAR(N) | FALSE |
INGREDIENT_TYPE | VARCHAR(N) | FALSE |
๋ฌธ์
์๋ฐ๊ธฐ ์์ด์คํฌ๋ฆผ ์ด์ฃผ๋ฌธ๋์ด 3,000๋ณด๋ค ๋์ผ๋ฉด์ ์์ด์คํฌ๋ฆผ์ ์ฃผ ์ฑ๋ถ์ด ๊ณผ์ผ์ธ ์์ด์คํฌ๋ฆผ์ ๋ง์ ์ด์ฃผ๋ฌธ๋์ด ํฐ ์์๋๋ก ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
โ ํ์ด
๋ฌธ์ ์๊ตฌ์ฌํญ
์๋ฐ๊ธฐ ์์ด์คํฌ๋ฆผ ์ด์ฃผ๋ฌธ๋์ด 3,000๋ณด๋ค ๋์ผ๋ฉด์ > ์กฐ๊ฑด1
์์ด์คํฌ๋ฆผ์ ์ฃผ ์ฑ๋ถ์ด ๊ณผ์ผ์ธ ์์ด์คํฌ๋ฆผ์ ๋ง > ์กฐ๊ฑด2
์ด์ฃผ๋ฌธ๋์ด ํฐ ์์๋๋ก ์กฐํ > ์ ๋ ฌ์กฐ๊ฑด1
์ฃผ๋ฌธ์ ๋ณด์ ๋ํด ๋ง๋ณ ์ฑ๋ถ์ ์กฐ๊ฑด์ ๋ถ์ฌํด์ผํ๋ฏ๋ก ๋ฌธ์ ์ ๊ธฐ๋ณธํค-์ธ๋ํค ์ ๋ณด ์ฐธ์กฐํ์ฌ FLAVOR ๊ธฐ์ค์ผ๋ก JOIN
SELECT HF.FLAVOR
FROM FIRST_HALF HF
INNER JOIN ICECREAM_INFO II
ON HF.FLAVOR = II.FLAVOR
WHERE HF.TOTAL_ORDER > 3000
AND II.INGREDIENT_TYPE = 'fruit_based'
ORDER BY HF.TOTAL_ORDER DESC