๐ข ๋ณธ ํฌ์คํ ์ ํ์ฉ๋๋ ๊ธฐ๋ณธ ๋ฌธ์ ๋ฐ ์๋ฃ ์ถ์ฒ๋
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ
์คํธ ์ฐ์ต,
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 |
๋ฌธ์
์๋ฐ๊ธฐ ๋์ ๊ฐ ์์ด์คํฌ๋ฆผ ์ฑ๋ถ ํ์ ๊ณผ ์ฑ๋ถ ํ์ ์ ๋ํ ์์ด์คํฌ๋ฆผ์ ์ด์ฃผ๋ฌธ๋์ ์ด์ฃผ๋ฌธ๋์ด ์์ ์์๋๋ก ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ์ด์ฃผ๋ฌธ๋์ ๋ํ๋ด๋ ์ปฌ๋ผ๋ช ์ TOTAL_ORDER๋ก ์ง์ ํด์ฃผ์ธ์.
โ ํ์ด
๋ฌธ์ ์๊ตฌ์ฌํญ
์๋ฐ๊ธฐ ๋์ ๊ฐ ์์ด์คํฌ๋ฆผ ์ฑ๋ถ ํ์ ๊ณผ ์ฑ๋ถ ํ์ ์ ๋ํ ์์ด์คํฌ๋ฆผ ์ด ์ฃผ๋ฌธ๋ > ์ฑ๋ถํ์ GROUP BY
์์ด์คํฌ๋ฆผ์ ์ด์ฃผ๋ฌธ๋์ > ์ง๊ณํจ์ SUM
์ด์ฃผ๋ฌธ๋์ด ์์ ์์๋๋ก > ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
SELECT II.INGREDIENT_TYPE, SUM(FH.TOTAL_ORDER) TOTAL_ORDER
FROM FIRST_HALF FH
INNER JOIN ICECREAM_INFO II
ON FH.FLAVOR = II.FLAVOR
GROUP BY II.INGREDIENT_TYPE
ORDER BY 2 ASC