๋ฌธ์
๐ MySQL ๋ก ํ์ด
๐ ๋ฌธ์ ๋งํฌ :
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ๋ฌธ์ ์ค๋ช :
7์ ์์ด์คํฌ๋ฆผ ์ด ์ฃผ๋ฌธ๋๊ณผ ์๋ฐ๊ธฐ์ ์์ด์คํฌ๋ฆผ ์ด ์ฃผ๋ฌธ๋์ ๋ํ ๊ฐ์ด ํฐ ์์๋๋ก ์์ 3๊ฐ์ ๋ง์ ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
๐ ํ ์ด๋ธ :
๋ค์์ ์์ด์คํฌ๋ฆผ ๊ฐ๊ฒ์ ์๋ฐ๊ธฐ ์ฃผ๋ฌธ ์ ๋ณด๋ฅผ ๋ด์ FIRST_HALF ํ ์ด๋ธ๊ณผ 7์์ ์์ด์คํฌ๋ฆผ ์ฃผ๋ฌธ ์ ๋ณด๋ฅผ ๋ด์ JULY ํ ์ด๋ธ์ ๋๋ค. FIRST_HALF ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, SHIPMENT_ID, FLAVOR, TOTAL_ORDER๋ ๊ฐ๊ฐ ์์ด์คํฌ๋ฆผ ๊ณต์ฅ์์ ์์ด์คํฌ๋ฆผ ๊ฐ๊ฒ๊น์ง์ ์ถํ ๋ฒํธ, ์์ด์คํฌ๋ฆผ ๋ง, ์๋ฐ๊ธฐ ์์ด์คํฌ๋ฆผ ์ด์ฃผ๋ฌธ๋์ ๋ํ๋ ๋๋ค. FIRST_HALF ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ FLAVOR์ ๋๋ค. FIRST_HALFํ ์ด๋ธ์ SHIPMENT_ID๋ JULYํ ์ด๋ธ์ SHIPMENT_ID์ ์ธ๋ ํค์ ๋๋ค.
NAMETYPENULLABLE
SHIPMENT_ID | INT(N) | FALSE |
FLAVOR | VARCHAR(N) | FALSE |
TOTAL_ORDER | INT(N) | FALSE |
JULY ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, SHIPMENT_ID, FLAVOR, TOTAL_ORDER ์ ๊ฐ๊ฐ ์์ด์คํฌ๋ฆผ ๊ณต์ฅ์์ ์์ด์คํฌ๋ฆผ ๊ฐ๊ฒ๊น์ง์ ์ถํ ๋ฒํธ, ์์ด์คํฌ๋ฆผ ๋ง, 7์ ์์ด์คํฌ๋ฆผ ์ด์ฃผ๋ฌธ๋์ ๋ํ๋ ๋๋ค. JULY ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ SHIPMENT_ID์ ๋๋ค. JULYํ ์ด๋ธ์ FLAVOR๋ FIRST_HALF ํ ์ด๋ธ์ FLAVOR์ ์ธ๋ ํค์ ๋๋ค. 7์์๋ ์์ด์คํฌ๋ฆผ ์ฃผ๋ฌธ๋์ด ๋ง์ ๊ฐ์ ์์ด์คํฌ๋ฆผ์ ๋ํ์ฌ ์๋ก ๋ค๋ฅธ ๋ ๊ณต์ฅ์์ ์์ด์คํฌ๋ฆผ ๊ฐ๊ฒ๋ก ์ถํ๋ฅผ ์งํํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๊ฐ์ ๋ง์ ์์ด์คํฌ๋ฆผ์ด๋ผ๋ ๋ค๋ฅธ ์ถํ ๋ฒํธ๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค.
NAMETYPENULLABLE
SHIPMENT_ID | INT(N) | FALSE |
FLAVOR | VARCHAR(N) | FALSE |
TOTAL_ORDER | INT(N) | FALSE |
ํ์ด
์ถ์ธก)
์ผ๋จ ๋ ํ ์ด๋ธ์ ์ฐ๊ด๊ด๊ณ๊ฐ ์๋ ์๋ฐ๊ธฐ์ 7์ ๊ธฐ๋ก์ด๋ฏ๋ก ๊ทธ๋ฅ ํฉ์ณ๋ ๋ ๊ฑฐ ๊ฐ๋ค.
๋ ํ ์ด๋ธ ์ปฌ๋ผ์ด ์ด๋ฆ์ด ๊ฐ์ผ๋ ํฉ์ณ์ ๊ทธ๋ฃนํ ํ๊ณ , ๋ํ ๊ฐ์ผ๋ก ๋ด๋ฆผ์ฐจ์ํ์ฌ 3๊ฐ๋ง ์ถ๋ ฅํ๋ฉด ๋ ๋ฏ!
์ฟผ๋ฆฌ)
* 1์ฐจ)
SELECT A.FLAVOR
FROM (SELECT *
FROM FIRST_HALF
UNION ALL
SELECT *
FROM JULY ) AS A
GROUP BY A.FLAVOR
ORDER BY SUM(A.TOTAL_ORDER) DESC
LIMIT 3
๋ฆฌ๋ทฐ)
UNION ์กด์ฌ๋ฅผ ์๊ณ ๋ ์์๋๋ฐ ์ด ์ฐธ์ ๋ค์ ์ ๋ฆฌ
UNION ํค์๋๋ ๋๊ฐ ์ด์์ SELECT๋ฌธ์ ํฉ์น๋ ์ญํ ์ ํ๋ค.
๋ SELECT๋ฌธ์ ๊ฒฐ๊ณผ ์ปฌ๋ผ ์ด๋ฆ๊ณผ ํ์ ์ด ๋์ผ ๋๋ ํ๋ณํ ๊ฐ๋ฅํ ์ ์ฌ ํํ์ฌ์ผ ํฉ์น ์ ์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก UNION์ ์ค๋ณต ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ์ง ์๊ณ , UNION ALL ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด์ค๋ณต ๋ฐ์ดํฐ๊น์ง ์ถ๋ ฅ์ด ๊ฐ๋ฅํ๋ค.