1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ๋ฐฉ์ & ์ ๋ต์ฝ๋ ๋ฌธ์ ๋ง ์ฝ์ด๋ ์์ดํ
์ด ์์ ์์ดํ
์ผ๋ก ์
๊ทธ๋ ์ด๋ ๋ ์ ์๋ ๊ฑธ ๋ณด๋, ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ๋ณด์ฌ์ง๋ค. 1. ๋จผ์ ITEM_INFOํ
์ด๋ธ์์ RARITY ๊ฐ 'RARE'์ธ ์์ดํ
๋ค์ ITEM_ID ๊ฐ์ ์ฐพ๋๋ค.2. ITEM_INFO ํ
์ด๋ธ์ ITEM_ID๋ ITEM_TREE์ PARENT_ITEM_ID๊ฐ ๊ฐ๋ค๋ ์กฐ๊ฑด์ผ๋ก ITEM_INFO์ ITEM TREE ํ
์ด๋ธ์ ์กฐ์ธํ๋ค. WHERE ์ ์ 1์กฐ๊ฑด์ ๋ฌ์์ ITEM_TREE.PARENT_ITEM_ID๊ฐ 1์กฐ๊ฑด ์ ํด๋นํ๋์ง ์ฐพ์ ์ค๋ค. ๊ณ์ ํ๋ฆฐ๋ค....ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
์์ด๊ณ ๋จธ๋ฆฌ์ผ ๐ฆ JOIN 1๋ฒ ํ๋ ์ ๋ต์ฝ๋SELECT ITEM_INFO.ITEM_ID, ITEM_INFO.ITEM_NAME, ITE..
My Tech Blog (๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ)
์ค๋ ํ ์ผ ์ค๋ ์ ๋
์ ์ ์ธ๊ณ ํ์
์๋ง ๋ฃจํผ 2๊ฐ ๋น๊ทผ ๊ฑฐ๋ ์ด๋ฒ์ฃผ ์์ฒ๋ง ๊ตญ๊ฐ์ ๊ถ ๊ฐ๋ ๊ธฐ์ฐจํ ์๋งค OK 10์๋ฐ ๊ธฐ์ฐจ ๋ ๋ชฌ์ฆ, ๋
์ฝฉ๋ฒํฐ, ์ฌ๊ณผ, ์ ์ฐ๊ท ์ ๋จน๊ธฐ 11์ ์ผํ๋ฆฌ์คํธ ์ ๋ฆฌ 2.2km 30๋ถ ๋ถ๋ฆฌ์๊ฑฐ ๋ฒ๋ฆฌ๊ธฐ ํ๋ ์ด๋ฆฌ์คํธ ๋
ธ์
์ ์ ๋ฆฌ ์ค๋ ํฌ์คํ
ํ ๊ฑฐ ๋จ์๊ฑฐ ์ฐ๋๋ณ ๋์ฅ๊ท ํฌ๊ธฐ์ ํธ์ฐจ ๊ตฌํ๊ธฐ ๋ฌผ๊ณ ๊ธฐ ์ข
๋ฅ ๋ณ ๋์ด ์ฐพ๊ธฐ ์
๊ทธ๋ ์ด๋ ๋ ์์ดํ
๊ตฌํ๊ธฐ ํน์ ๋ฌผ๊ณ ๊ธฐ๋ฅผ ์ก์ ์ด ์ ๊ตฌํ๊ธฐ ๋นํธ์ฐ์ฐ ๋ณต์ต ์ธ ๊ฐ ์ฐจ์ด ์ ํํ ๋ณต์ต [ํ๋ก๊ทธ๋๋จธ์ค] ๐ฉ๐ป๐ป (MySQL) ํน์ ํ์ง์ ๊ฐ์ง๋ ๋์ฅ๊ท ์ฐพ๊ธฐ ๋ฌธ์ ํ์ด1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ๋ฐฉ์ & ์ ๋ต์ฝ๋SELF JOIN์ผ๋ก ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๋์ผํ ํ
์ด๋ธ ๋ด์์ ์กฐ์ธํด์ ํ์ด์ฃผ์.ํ๋์ ํ
์ด๋ธ์ ALIAS๋ฅผ ์ค์ ๋ง์น ๋ ๊ฐ์ ํ
์ด๋ธ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ ๋ฒ..
๋๋ฌด ์ฌ์์ ๊ตณ์ด ๋ธ๋ก๊ทธ์ ์ ์ฌ๋ฆฌ๋ ค๋ค๊ฐ ์ฝ๋๋ง ์ฌ๋ฆฝ๋๋ค.ํ๋ก๊ทธ๋๋จธ์ค > ์ฝ๋ฉํ
์คํธ ์ฐ์ต > 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. ์ก์ ๋ฌผ๊ณ ๊ธฐ ์ค ๊ฐ์ฅ ํฐ ๋ฌผ๊ณ ..
1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ๋ฐฉ์ & ์ ๋ต์ฝ๋SELF JOIN์ผ๋ก ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๋์ผํ ํ
์ด๋ธ ๋ด์์ ์กฐ์ธํด์ ํ์ด์ฃผ์.ํ๋์ ํ
์ด๋ธ์ ALIAS๋ฅผ ์ค์ ๋ง์น ๋ ๊ฐ์ ํ
์ด๋ธ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ ๋ฒ ์ฐธ์กฐํ๋ ๊ฒ์ด๋ค. ๋ด๊ฐ ์๊ณ ์๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ SELF JOIN ์์๋ ์ง์๋ณ ๋งค๋์ ๋ฅผ ๋ํ๋ธ 1๊ฐ์ ํ
์ด๋ธ์ ์๊ธฐ์์ ๊ณผ ์กฐ์ธํ๋ ๊ฒ์ด๋ค. ๋ ๊ณ์ธต์ฟผ๋ฆฌ์์๋ SELF JOIN์ด ๋ง์ด ์ฐ์ธ๋ค. ์ด ๋ฌธ์ ์์๋ ํ๋์ ํ
์ด๋ธ์ ๋ถ๋ชจ์ ์์ด๋์ ์์์ ์์ด๋, ๊ฐ์ฒด์ ํ์ง(GENOTYPE)์ด ๋ชจ๋ ๋ค์ด ์๋ค. ๋ถ๋ชจ์ ํ
์ด๋ธ์ P๋ก, ์์์ ํ
์ด๋ธ์ ๊ทธ๋ฅ A๋ผ๊ณ ๋ณ์นญ์ ์ค ๋ค ์์ํ
์ด๋ธ์ PARENT_ID์ปฌ๋ผ์ ๋ถ๋ชจ ํ
์ด๋ธ์ ID ๊ฐ์ผ๋ก ์กฐ์ธ ํ๋ค. ๊ทธ ํ WHERE ์ ์ `A.GENOTYPE & P.GENOTYPE ..
์ค๋์ ์ ๊ฐ ์ข์ํ๋ ๋
ธ๋ TLC - Turntable ๋ค๊ณ ์ ๋ดค์ด์ ใ
ใ
ใ
๋จ 3์ฅ์ ์จ๋ฒ์ผ๋ก 90๋
๋๋ฅผ ์ง๋ฐฐํ๋ ๊ฐ์ TLC์ ๋ํด ์๊ฐ ํด ๋๋ฆฌ๋ ค๊ณ ํด์.์์ ๋กญ๊ณ ๊ธ์ ์ ์ธ ๋ถ์๊ธฐ์ ๋
ธ๋๊ฐ ๋ง์์ ์ ๊ฐ ์์ฃผ ๋ฃ๋๋ฐ์.. ์ ๊ฐ ๋๋ฌด๋๋ฌด ์ข์ํ๋ ๊ฐ์์ธ๋ฐ๋ฉค๋ฒ ๋ ํํธ ์์ด์ ๋น๋ณด๋ฅผ ๋ฃ๊ณ ์ฌํผ ํ๋ ๊ธฐ์ต์ด ๋๋ค์~ ๋ง์ ์ฌ๋๋ค์๊ฒ ์์ ์ ํ๋ณต๊ฐ์ ์ ์ฌํ์ง๋ง...์ ์ ๋ณธ์ธ๋ค์ ์์ ๋กญ์ง ๋ชปํ๋ TLC์ ์ด์ผ๊ธฐ์ง๊ธ๋ถํฐ ๋ค๋ ค๋๋ฆด๊ฒ์ ์ฐ๋ฆฌ๋ ์ญ์ฌ์ ๊ฐ์ฅ ํฌ๊ฒ ์ฑ๊ณตํ ๊ฑธ๊ทธ๋ฃน์ด๊ณ 1000๋ง์ฅ์ด ๋๋ ์จ๋ฒํ๋งค๊ณ ์5๋
๋์ ์ด ๋ฐ๋ฅ์์ ์ฃฝ์ด๋ผ ์ผํ๋๋ฐ๊ฒฐ๊ตญ ํ์ฐํ ๋๋ก ํ์ฐํด๋ฒ๋ ธ๋ค์(We Are Broken As Broke Can Be)- 1996๋
๊ทธ๋๋ฏธ ์ด์์ฆ์์ Chilli์ ์์์๊ฐ - ์ผ์ชฝ๋ถํฐ ํฐ๋ณด์ฆ, ์น ๋ฆฌ, ๋ํ..
1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ ๋ฐฉ๋ฒ & ์ ๋ต์ฝ๋`GENOTYPE`์ ์ด์ง์๋ก ๋ณํํ ๊ฐ์ `๊ฐ ์๋ฆฟ์`๊ฐ `๋ณด์ ํ ํ์ง`์ ๋ํ๋ด๋ฏ๋ก๋นํธ์ฐ์ฐ์ ํด ์ฃผ์ด์ผ ํ๋ ๋ฌธ์ ๋ผ๋ ๊ฑธ ์ ์ ์๋ค ! SELECT COUNT(*) AS COUNTFROM ECOLI_DATA AWHERE 1=1 AND (GENOTYPE & 2) != 2 AND ((GENOTYPE & 4) = 4 OR (GENOTYPE & 1) = 1) ์ด ๋ฌธ์ ๋ WHERE์ ์์ฑํ๊ธฐ๊ฐ ์กฐ๊ธ ์ด๋ ค์ธ ์ ์๊ธฐ ๋๋ฌธ์ ํ๋์ฉ ์ฐจ๊ทผ ์ฐจ๊ทผ ์ค๋ช
์ ํด ๋ณด๊ฒ ๋ค. ๋จผ์ ๋นํธ์ฐ์ฐ์ด๋ ๊ฑธ ๋ชจ๋ฅด๋ฉด ์ดํด๊ฐ ์ด๋ ค์ธ ์ ์๊ธฐ ๋๋ฌธ์ ๋นํธ์ฐ์ฐ ๋จผ์ ์์๋ณด์.๋นํธ์ฐ์ฐ์ด๋?๋นํธ ์ฐ์ฐ์ ์ซ์๋ฅผ ์ด์ง์ ํํ๋ก ๋ณํํ์ฌ ๊ฐ ๋นํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฐ์ฐ์ ์ํํ๋ ๋ฐฉ์์ด๋ค. ํ๋ก๊ทธ..
๐ฆ๋ฌธ์ ์ค๋ช
์ฒ์์๋ ๋ณต์กํ๊ฒ ์๊ฐํด์ ๋ฌธ์ ๋ฅผ ํ์ง ๋ชปํ๋ค. ๋๋ `๋ ํ
์ด๋ธ์ ์กฐ์ธ์ ํด์ผ ํ๋๋ฐ ์กฐ์ธ ์กฐ๊ฑด์ ์ด๋ป๊ฒ ์ฃผ์ง?` ์ด๋ ๊ฒ ์๊ฐ์ ํ๊ณ ๋ฌธ์ ์ ์ ๊ทผํ๋ค. ๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด ์กฐ์ธ์ ํ ์ ์๋ค.์ด๊ฑด ์๋ธ์ฟผ๋ฆฌ๋ก ํธ๋ ๋ฌธ์ ์๋ค. ๋๋ ์ฒ์์ ์ด ๋ฌธ์ ๊ฐ ์๋ฐ ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ
์คํธ์ฒ๋ผ ๋๊ปด์ก๋ค. ์๋ํ๋ฉด ๋ด๊ฐ ์ง์ ์ด์ง์ ๊ณ์ฐ์ ํ๋ ๋ก์ง์ ์ง์ผ ํ๋๊ฑด๊ฐ? ๋ผ๋ ์๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ด๋ค.์๋ฆฌ์2561286432168421์ด์ง์110010000 ์ญ์ง์๋ฅผ ์ด์ง์๋ก ๋ฐ๊พธ๋ `BIN(SKILL_CODE)` ํจ์ ์จ์ CODE ์ปฌ๋ผ์ด๋ ๋ง์ถฐ๋ณผ๊น ์๊ฐํ๋๋ฐ ์ด๋ป๊ฒ ํด์ผ ์ข์ ์ง ์ฝ๊ฒ ์๊ฐ์ด ๋์ง ์์๋ค. ๊ทธ ํ์ `SUBSTRING(BIN(SKILL_CODE),?,?)` ์ด๋ฐ ์์ผ๋ก ๊ฐ์ ์๋ผ ์ค์ผ ํ๋ ์๊ฐ๋ ํด ๋ดค..
๐ ๊ฐ์ฅ ํฐ ๋ฌผ๊ณ ๊ธฐ 10๋ง๋ฆฌ ๊ตฌํ๊ธฐ ๊ฐ์ฅ ํฐ ๋ฌผ๊ณ ๊ธฐ 10๋ง๋ฆฌ๋ฅผ ์ ํํ๋ผ๊ณ ํ์ผ๋๊น, ROWNUM์์จ์ผ ํ๋ค. ํ์ง๋ง ROWNUM์ Oracle์๋ง ์๋ ๋ฌธ๋ฒ์ด๊ณ , MySQL์์๋ LIMIT ํค์๋๋ก ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ๋ค. ์ฃผ์ํ ์ , ROWNUM / LIMIT ์ ์๋ธ์ฟผ๋ฆฌ(subquery)์ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋ค. ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ ์ฐ๋ฉด WHERE์ ์ด SELECT์ ๋ณด๋ค ๋จผ์ ์ํ๋์ด ์ํ๋ ๊ฐ์ด ๋์ค์ง ์๋๋ค. ๊ธธ์ด๊ฐ ํฐ ์์ผ๋ก 10๊ฐ๋ฅผ ๊ฐ์ ธ์์ผ ํ๋๋ฐ, ๊ธธ์ด์ ์๊ด ์์ด ๋๋คํ ๊ฐ 10๊ฐ๊ฐ ์ ํ๋๋ ๊ฒ์ด๋ค. ์ด๊ฒ์ SQL๋ฌธ์ ์คํ์์ ๋๋ฌธ์ด๋ค. SQL์ ์คํ ์์FROM - WHERE(ROWNUM ์คํ) - GROUP BY - HAVING - SELECT - ORDER BY LENGTH๋ฅผ ํฐ ๊ฐ๋ถํฐ ์ ..