3 Must-Know SQL Functions For Efficient Data Analysis
Medium
[ ๐ก์ค๋ฌด ๊ฟTip!๐ก : SQL ์ ๋ฌธ์์๊ฒ ์ถ์ฒํ๋ ์์๋๋ฉด ์ข์ ์ฟผ๋ฆฌ Best 3] ์ค์ ๋ก ํ์ฌ์์ SQL์ ๊ฐ๋ฅด์ณ๋ฌ๋ผ๋ ๋ถ๋ค์ด ๊ฝค ์์์ต๋๋ค. ์ฒด๊ณ์ ์ด๊ธฐ๋ณด๋ค ์จ๋ชธ์ผ๋ก ๊ตด๋ฌ์ ๋ฐฐ์ด ์ฌ๋์ด์ด์ (๋๋ต ์ค์๋ฅผ ๋ค ์จ๋ชธ์ผ๋ก ๋ถ๋ช์ณ์ ๋ฐฐ์ ๋ค๋ ์๊ธฐ) ๋๊ตฐ๊ฐ์๊ฒ ๊ฐ๋ฅด์น ์๋๊ฐ ๋์ ํ ๋์ง ์์์ต๋๋ค. ๊ทธ๋๋ SQL์ ์ค๋ฌด์ ์ผ๋ก ํ์ฉํ์ง ์ผ์ถ 3-4๋ ์ฐจ๊ฐ ๋์ด๋ณด๋, ์ด ๊ธฐ๋ฅ์ ์ตํ๋๋ฉด ๋ฐ์ดํฐ ๋ถ์์ ์ค์ ๋ก ๋์์ด ๋ง์ด ๋๋ค ์ถ์ ์ฟผ๋ฆฌ๋ ์๋ค๊ณ ๋๋๋๋ค. ๋ง์นจ ์ ์ ๋ฆฌ๋ ๊ธ์ด ์๊ธธ๋ ๊ฐ์ ธ์์ต๋๋ค. 1๏ธโฃCoalesce (ํ ์ด๋ธ ํฉ์น๊ธฐ) : JOIN - ON โ ํ์ฌ DB๋ฅผ ๋ณด๋ฉด, ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ฐ์ดํฐ๊ฐ ๊ฐ๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์. ์๋ฅผ ๋ค๋ฉด ํ์์ ๋ํ ๊ฐ์ธ ์ ๋ณด (์ฑ๋ณ, ๊ฐ์ ์๊ธฐ, ๊ฐ์ ํ ๋ฃจํธ)์ '๊ตฌ๋งค ๋ฐ์ดํฐ'๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ชฉ์ ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ์ ์ฅ์ด ๋ฉ๋๋ค. ์๋ง ์์ ๋ก ๊ฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์ 'ํ์id' ๊ธฐ์ค์ผ๋ก V lookup ๋ฑ์ ์ฐ์ จ์ ํ ๋ฐ์ ์ ์ด์ ๋ ํ ์ด๋ธ์ ํฉ์ณ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค! โ ๋ํ์ ์ธ ์ฟผ๋ฆฌ๊ฐ 'JOIN' ์ ๋๋ค. ์ด๋ป๊ฒ JOINํ๋์ ๋ฐ๋ผ LEFT JOIN, RIGHT JOIN ๋ฑ ์์ฉํด์ ์ธ ์ ์์ต๋๋ค. ์คํฐ๋ ํด๋ณด์๊ธธ ๋ฐ๋์! 2๏ธโฃ์กฐ๊ฑด๋ฌธ : CASE WHEN โ ์์ ๋ก ํํฐ๋ง ํ๋ ์์ ์ ์ด์ ๊ตฟ๋ฐ์ด ํ์๊ธธ. 'Case When' ์๋ค๋ฉด, ์ ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ํ๋ ์กฐ๊ฑด์ ํํฐ๋ง ํ์ฌ ๋ฐ๋ ค ์ฌ ์ ์์ต๋๋ค. โ ๋ฐ์ดํฐ๋ฅผ ํต์ผ๋ก ๋ค๊ณ ์ค๋ฉด ์๊ฐ๋ ๋ง์ด ๊ฑธ๋ฆฌ๊ณ ์์ ์์ฒด ์์ ์๊ฐ๋ ๊ฝค ๊ฑธ๋ฆฝ๋๋ค. Case When์ผ๋ก ์์ ํด์ผ ํ๋ ๋ฐ์ดํฐ ๊ฐฏ์๋ฅผ ์ค์ด๋ฉด ์ฌ๋ฌ๋ชจ๋ก ํจ์จ์ ์ด๊ฒ ๋ฉ๋๋ค. ๐จ 3๏ธโฃํ๋ณ ์์๋งค๊ธฐ๊ธฐ : ROW_NUMBER () OVER (PARTITION BY a ORDER BY b) โ ์๊ฑด ์ฌ์์ง ์์ฉ ์์ญ์ ๋๋ค. ์๋ฅผ ๋ค์ด CRM ์์ญ์์๋ ๊ณ ๊ฐ์ ์ฌ๋ฌ ๊ธฐ์ค์ผ๋ก ๋ถ์์ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ ์์๋ณ๋ก ์์ ๋ช %์ธ์ง ๊ฐ๊ฐ ๋ฐ์ ธ๋ณผ ๋, ์์ฃผ ์ ์ฉํ์ฃ . ๊ณ ๊ฐ ์ถฉ์ฑ๋๋ฅผ ๋ฐ์ง ๋ 1) ์ผ๋ง๋ ์ต๊ทผ์ ๊ตฌ๋งคํ๋ 2) ๋์ ๊ตฌ๋งค ๊ธ์ก์ด ์ผ๋ง์ธ๊ฐ ์ด๋ ๊ฒ ๋ ๊ฐ์ง๋ก ๋ณธ๋ค๊ณ ๊ฐ์ ํด๋ณด์ฃ . ๊ฐ์ ์ ์ ์ ๋ํด ๋ ์์๋ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฐ ์์๋ณ ์์๋ ๋ค๋ฅผ ๊ฑฐ์์. ์ด ๋, ์ด ์ฟผ๋ฆฌ๊ฐ ์์ฃผ ๋์์ด ๋ ๊ฒ๋๋ค. โ ์๋ฅผ ๋ค์ด ROW_NUMBER () OVER (PARTION BY user_id ORDER BY last_purchase_date DESC) ๋ก ๋๋ค๋ฉด, ๋ง์ง๋ง ๊ตฌ๋งค์ผ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ์ต์ ์ ๊ตฌ๋งคํ ์ ์ ์์๋๋ก ์์๊ฐ ์กํ ๊ฑฐ์์!์ด๋ฐ ๋ฐฉ์์ผ๋ก loyalty๊ฐ ๋์ ์ ์ ์ ๋ํด ๋ถ์์ ํ ์ ์์ต๋๋ค! ๊ทธ ์ธ์๋ ๋น์ฐํ ์์ฉํ ์ ์๋ ์์ญ์ด ๋งค์ฐ ๋ง๊ฒ ์ฃ ? (๊ทธ๋์ ๋ฐ์ดํฐ ๋ถ์ ๊ด๋ จํด์ ๊ณ ๋ฏผํด์ค๋ ํฌ์ธํธ๊ฐ ์๋ค๋ฉด, ์๋ง ๋ฌด๋ฆ์ ํ ์น๊ฒ ๋ง๋๋ ๊ธฐ๋ฅ์ผ๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค!!) ์ด๋ค ํด์ด๋ ์ง์ ๋ค๋ฃฐ ์ ์๋๊ฒ ๋ฒ ์คํธ์ฃ . SQL์ ๋ฐฐ์ฐ๊ณ ์ถ์๋ฐ ์์์ ์ด๋ป๊ฒ ํด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด ์ ๊ธฐ๋ฅ๋ง ์ฐ์ ์ ์ผ๋ก ์ตํ ํ, ์ง์ ์ฟผ๋ฆฌ๋ฅผ ๋ฝ์๋ณด์ธ์! ์๋ง ๊ฝค ๋ง์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๊ฑฐ์์!! ๐ช๐ช๐ช
2021๋ 6์ 11์ผ ์ค์ 6:11
ย โขย
์ ์ฅ 46 โข ์กฐํ 3,017