๐ 1. ๋ฌธ์ ์ค๋ช
์
์ถ๋ ฅ ์ ์ค๋ช
์์ #1[1, 7]์ผ๋ก๋ ์์ [7, 17, 71]๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.์์ #2[0, 1, 1]์ผ๋ก๋ ์์ [11, 101]๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.11๊ณผ 011์ ๊ฐ์ ์ซ์๋ก ์ทจ๊ธํฉ๋๋ค.๐ก 2. ์ ๊ทผ๋ฐฉ์(1) ์์ ํ๋ณํ๋ ๋ฉ์๋ isPrime ๋ง๋ค๊ธฐpublic static boolean isPrime(int num) { if (num Math.sqrt()์ฃผ์ด์ง ํจ์๋ก ์ ๊ณฑ๊ทผ ๋ง๋๋ ๋ฉ์๋ Square root๋ฅผ ์ค์ฌ์ sqrt์์์ธ์ง ํ๋ณํ๋ ๋ฐฉ์ : ์๋ผํ ์คํ
๋ค์ค์ ์ฒด (2) ์์ด ์์ฑํ๋ ๋ฉ์๋ generatePeremutations ๋ง๋ค๊ธฐ// ์์ด์ ์์ฑํ๋ ์ฌ๊ท ๋ฉ์๋public void generatePermutations(String p..
My Tech Blog (์ฝ๋)
1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ๋ฐฉ์ECOLI_DATA๋ ๋ถ๋ชจ-์์๊ฐ์ ๊ณ์ธต ๊ด๊ณ๋ฅผ ์ด๋ฃจ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ฐ ์ธ๋๋ณ๋ก ์์์ด ์๋ ๊ฐ์ฒด์ ์๋ฅผ ์ถ๋ ฅํ๋ ค๋ฉด ์ฌ๊ท CTE๋ฅผ ์ฌ์ฉํด์ ๋์ฅ๊ท ์ ์ธ๋generation)๋ฅผ ๊ณ์ฐํด ์ฃผ์ด์ผ ํ๋ค. WITH RECURSIVE ๋ธ๋ก์ ๋จผ์ ์ง์ ํด ์ฃผ๊ณ , ๋ธ๋ก ๋ฐ๊นฅ์์ ์ธ๋๋ณ๋ก ์์์ด ์๋ ๊ฐ์ฒด์๋ฅผ ์กฐํํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ง ์ฃผ๋ฉด ๋๋ค. WITH RECURSIVE ๋ธ๋ก์ ๋ ๋ ๋ถ๋ถ์ผ๋ก ๋๋๋๋ฐ, ๋จผ์ , PARENT_ID IS NULL์ธ ์กฐ๊ฑด์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํํด์ 1์ธ๋(AS GENERATION)๋ฅผ ๊ท์ ํด ์ค๋ค. ๋ ๋ฒ์งธ๋ก ํ ์ผ์, ์ด 1์ธ๋ ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก +1์ ํด์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์กฐํ ํ๋ ๊ฒ์ด๋ค. ์ฆ, ๋ถ๋ชจ ๊ฐ์ฒด๋ก๋ถํฐ ์์์ ์ธ๋ ์๋ฅผ ๊ณ์ฐ ํด ์ฃผ๋ ๊ฒ์ด๋ค. Generation ..
์ด๋ ค์์ ๋ฏธ๋ฃจ๋ค๊ฐ ๋ชป ํผ ๋ฌธ์ ๊ฐ 2๊ฐ ์์๋ค. Lv4 ๋ฌธ์ 1๊ฐ๋ Lv5 ๋ฌธ์ 1๊ฐ์ด๋ค. ๋์ด๋ ์ต์์ธ ๋งํผ, ๋ฌธ์ ์ฝ๊ธฐ๋ ์ ์ ํ๊ธฐ๊ฐ ๋๋ ค์ด ๋ง์์ด ์์๋ค. ์ด ๋ฌธ์ ๋ ์ ์ง ์ค๋ซ ๋์ ๋
ธํธ๋ถ ์์ ์์์ ๋จธ๋ฆฌ ๋ง์ด ์ฐ๊ณ ๊ณ ๋ฏผํด ๋ด์ผ ๋ ๊ฒ ๊ฐ์์ ํ๊ธฐ์ซ์๋ค. MySQL์์๋ START WITH CONNECT BY๊ฐ ์๋๋ค๋ ๊ฑฐ ์๊ณ ๋ถํฐ๋ ๋ ์๋ก์ด๊ฑฐ ๋ฐฐ์ฐ๊ธฐ ์ซ์ด์ ๋ฏธ๋ค๋๋ฐ ์ค๋ ์ผ๋ฅธ ๋๋ด๋ฒ๋ฆฌ๊ณ ์์ผ์ง1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ๋ฐฉ์์ฒ์์๋ ์ด๋ ค์ ๋ณด์ฌ์ ๋ฌธ์ ๋ฅผ ์ฝ๊ณ ๋ญ ๊ตฌํด์ผ ํ๋์ง ์๊ฐ์ ํ๋ฆ์ ํ๊ธ๋ก ๋ฐ์ ์ ์ด ๋ดค๋ค. PARENT_ID๊ฐ NULL์ด๋ฉด 1์ธ๋์ด๋ค. PARENT_ID๊ฐ NULL์ธ ID๋ฅผ ๋ถ๋ชจ๋ก ๊ฐ์ง๋ ํ์ด 2์ธ๋ ์ด๋ค. PARENT_ID๊ฐ NULL์ธ ID๋ฅผ ๋ถ๋ชจ๋ก ๊ฐ์ง๋ ํ์ ID๋ฅผ ๋ถ๋ชจ๋ก ๊ฐ..
1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ ๋ฐฉ๋ฒ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๋ ์๊ฐ์ `์ฐ๊ด ์ปฌ๋ผ์ด ์์ ๋๋ ํ
์ด๋ธ์ ์ด๋ป๊ฒ ์กฐ์ธํ๋๊ฐ?` -> ๊ทธ๋์ ์นดํ
์์ ๊ณฑ์ด ๋ ์ฌ๋๋ค.๋ชจ๋ ์กฐํฉ์ ์์ฑํ๋ ๊ฒฝ์ฐ๋ฅผ ์นดํ
์์ ๊ณฑ(Cartesian Product)์ด๋ผ๊ณ ํ๋๋ฐ CROSS JOIN ํด ์ฃผ๋ ๊ฒ์ด๋ค.์ผ๋จ ์ฌ๊ธฐ๊น์ง๋ง ์์ฑ ํ๊ณ ์ฟผ๋ฆฌ๋ฅผ ์คํ์์ผ ๋ณด๊ธฐ๋ก ํ๋ค. ํ
์ด๋ธ์ด ์์ผ๋ก ๋ถ์๋ค. ์ฌ๊ธฐ์ ๋ ์ง๋ณ๋ก GROUP BY ํด ๋ณด๊ณ ๋ญ๊ฐ ํด ๋ณด๋ ค๊ณ ํ๋๋ฐ ์ค๊ฐ์ ๊ธฐ๊ฐ ๋งํ ์๊ฐ์ด ๋ฌ๋ค.ํ
์ด๋ธ์ ์์ด ์๋๋ผ ์๋๋ก ๋ถ์ด๋ฉด ๋๊ฒ ๋ค. ๊ทธ๋ผ UNION ALL์ ์จ ๋ณด๋๊ฒ ์ด๋จ๊น?๊ทธ๋์ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ์ด๋๊ฒ ์ข๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.๊ทธ๋ฆฌ๊ณ ์ค๋ณต๊ฐ์ ์์ ๋ฉด ์๋๊ธฐ ๋๋ฌธ์ UNION์ด ์๋๋ผ UNION ALL... ์ค๋ง...!! SELECT SALES_DATE..
๋์ด๋ 3์ด๋ผ ์ด๋ ค์ธ ์ค ์์๋๋ฐ ๋๋ฌด ์ฌ์์ ๊ทธ๋ฅ ์ฝ๋๋ง ํฌ์คํ
ํฉ๋๋ค. ๋์ฅ๊ท ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ถ๋ฅํ๊ธฐ 1 ์ ๋ต์ฝ๋SELECT ID, SIZEFROM ( SELECT ID, CASE WHEN SIZE_OF_COLONY > 1000 THEN 'HIGH' WHEN SIZE_OF_COLONY ๋์ฅ๊ท ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ถ๋ฅํ๊ธฐ 2 ๋ฌธ์ ๋์ฅ๊ท ๊ฐ์ฒด์ ํฌ๊ธฐ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ ๋ ์์ 0% ~ 25% ๋ฅผ 'CRITICAL', 26% ~ 50% ๋ฅผ 'HIGH', 51% ~ 75% ๋ฅผ 'MEDIUM', 76% ~ 100% ๋ฅผ 'LOW' ๋ผ๊ณ ๋ถ๋ฅํฉ๋๋ค. ๋์ฅ๊ท ๊ฐ์ฒด์ ID(ID) ์ ๋ถ๋ฅ๋ ์ด๋ฆ(COLONY_NAME)์ ์ถ๋ ฅํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ๊ฐ์ฒด์ ID ์ ๋ํด ์ค๋ฆ..
1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ๋ฐฉ์์ด๋ ๊ฒ ๊น์ง ์ค๋ ๋ถ์ก๊ณ ์์ ๋ฌธ์ ๊ฐ ์๋๋ฐ ์ค๋์ ํ๊ธฐ ์ซ์ด์ ใ
ใ
ใ
...๊ฒ์ผ๋ฆ ์ข ํผ์๋ดค๋ค. ์ฒ์์๋ ECOLI_DATA ํ
์ด๋ธ ๋ด์์ PARENT_ID(๋ถ๋ชจ)๊ฐ ์๋ ๋ฐ์ดํฐ๋ค์ ID๊ฐ์ ์นด์ดํธ ํด ์ฃผ๋ฉด ๋๋๊ฑฐ๋ค ๋ผ๊ณ ์๊ฐ ํด์ ํ๋ ธ๋ค. ๊ฒฐ๊ณผ์ฐฝ์ ๋ณด๋ ์์์ด ์๋ ๋ถ๋ชจ๋ค๋ง ์ถ๋ ฅ์ด ๋๊ณ ์์์ด ์๋ ๋ถ๋ชจ๋ค์ ID๊ฐ์ ์กฐํ๊ฐ ๋์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ LEFT JOIN์ ํด ์ฃผ์ด์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.์ฝ๋๋ฅผ ์ด๋ ๊ฒ ๊ณ ์ณค๋๋ฐ ์ด๋ ๊ฒ ํ๋๋ฐ๋ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค.์ด๋ ๊ฒ ๊ณ ์น๋ฉด์ ๋ถ๋ชจ ํ
์ด๋ธ์ด ID ๊ฐ์ ID๋ก SELECTํ๊ณ , ์์ ํ
์ด๋ธ์ PARENT_ID๋ฅผ ์นด์ดํ
ํด ์ฃผ์๋ค. ํ๋ฆฐ ์ด์ ๋ WHERE ์ ๋๋ฌธ์ด์๋ค.์์์ด ์๋ ๋ถ๋ชจ๋ ์นด์ดํ
์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์WHERE E.PARENT..
1. ๋ฌธ์ ์ค๋ช
๋ฌธ์ ๋ถํ๋ ์ฐ๋(YEAR), ๋ถํ๋ ์ฐ๋๋ณ ๋์ฅ๊ท ํฌ๊ธฐ์ ํธ์ฐจ(YEAR_DEV), ๋์ฅ๊ท ๊ฐ์ฒด์ ID(ID) ๋ฅผ ์ถ๋ ฅํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ๋ถํ๋ ์ฐ๋๋ณ ๋์ฅ๊ท ํฌ๊ธฐ์ ํธ์ฐจ๋ ๋ถํ๋ ์ฐ๋๋ณ ๊ฐ์ฅ ํฐ ๋์ฅ๊ท ์ ํฌ๊ธฐ - ๊ฐ ๋์ฅ๊ท ์ ํฌ๊ธฐ๋ก ๊ตฌํ๋ฉฐ ๊ฒฐ๊ณผ๋ ์ฐ๋์ ๋ํด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ๊ฐ์ ์ฐ๋์ ๋ํด์๋ ๋์ฅ๊ท ํฌ๊ธฐ์ ํธ์ฐจ์ ๋ํด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ฃผ์ธ์.2. ์ ๊ทผ๋ฐฉ๋ฒ ๊ฐ์ฅ ํฐ ๋์ฅ๊ท ์ ํฌ๊ธฐ๋ฅผ ๊ตฌํด์ค์ผ ํ๋ฏ๋ก MAX(SIZE_OF_COLONY)๋ฅผ ํด ์ค์ผ ํ ๊ฒ ๊ฐ๊ณ ์ฐ๋๋ณ๋ก ๊ตฌํด์ผ ํ๋๊น ์๋์ฐ ํจ์์จ ์ค์ ์ฐ๋๋ก ํํฐ์
๋ ํด ์ฃผ์ด์ผ ํ๋ค. ์ผ๋จ ์ด ์์
์ ๋จผ์ ํ ํ์ ํด๋น ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง๊ณ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถ ํด ์ฃผ๊ณ ORDER BY ์ ๋ ฌ์ ํด ์ฃผ์ด์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค. ๋จผ์ , ..
๋๋ฌด ์ฌ์์ ๊ตณ์ด ๋ธ๋ก๊ทธ์ ์ ์ฌ๋ฆฌ๋ ค๋ค๊ฐ ์ฝ๋๋ง ์ฌ๋ฆฝ๋๋ค.ํ๋ก๊ทธ๋๋จธ์ค > ์ฝ๋ฉํ
์คํธ ์ฐ์ต > SLQ > `SUM, MAX, MIN`์นดํ
๊ณ ๋ฆฌ์ ์๋ ๋ฌธ์ ๋ค์
๋๋ค. ๊ทธ๋ฅ ํ ๋์ ๋ณด๊ณ ๋ฐ๋ก ํ ์ ์๋ 5์ด์ปท ๋ฌธ์ ๋ค์ํ ํฌ์คํ
๋ด์ ์ฌ๋ฌ ๊ฐ ๋ฌถ์ด์ ์ฌ๋ฆฌ๋ ๊ฒ์ด๋ ๊ตฌ์ฒด์ ์ธ ์ค๋ช
์ด ํ์ํ์๊ฑฐ๋ ๊ถ๊ธํ ์ ์ ๋๊ธ๋ก ๋ถํ๋๋ฆฝ๋๋ค.ํ์ธํ๋ ๋๋ก ๋ต ๋๋ฆฝ๋๋ค. 1. ๊ฐ์ฅ ๋น์ผ ์ํ ๊ตฌํ๊ธฐ MAX()SELECT MAX(PRICE) AS MAX_PRICEFROM PRODUCT ํ์ด์ ์ฐ๋ ์ฝ๋SELECT PRICE AS MAX_PRICEFROM PRODUCTORDER BY PRICE DESCLIMIT 1;2. ์ต๋๊ฐ ๊ตฌํ๊ธฐ SELECT MAX(DATETIME)FROM ANIMAL_INS;3. ์ก์ ๋ฌผ๊ณ ๊ธฐ ์ค ๊ฐ์ฅ ํฐ ๋ฌผ๊ณ ..