Programmers] ์ํ๋ถ๋ฅ๋ณ ๊ฐ์ฅ ๋น์ผ ์ํ์ ์ ๋ณด ์กฐํํ๊ธฐ
๋ฌธ์
๐ 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 | ์๋ธ์ฟผ๋ฆฌ์์ ์ฌ๋ฌ๊ฐ์ ๊ฒฐ๊ณผ์ ์กฐ๊ฑด์ด ๋ง์ผ๋ฉด ์ฐธ |