240607 Today I LearnZ-์ฐจํธ๋ก ๋งค์ถ ์ถ์ด ํ์ธํ๊ธฐ๐ก Z์ฐจํธ๋?๋งค์ถ๋ถ์์ ์ํด ์ฌ์ฉํ๋ ์ฐจํธ๋ก, ์๋ณ๋งค์ถ, ๋งค์ถ๋๊ณ, ๊ทธ๋ฆฌ๊ณ ์ด๋ํฉ๊ณ๋ฅผ ํ๋ฒ์ ํ์ํ๋ ๊ทธ๋ํ์ด๋ค.์๋ณ๋งค์ถ (ํ๋)๋งค์ถ๋๊ณ (์ฃผํฉ) : ์๋์ ์ผ๋ก ๋จ๊ธฐ์ ์ถ์ด์ด๋ํฉ๊ณ (ํ์) : ํด๋น ์ ๊ธฐ์ค 1๋
์น ๋์ ํฉ๊ณ์ฅ๊ธฐ์ ์ถ์ด๋ฅผ ์ ์ ์์๊ณ์ ์ฑ, ํ๋ก๋ชจ์
๋ฑ ๋ณ๋์ฑ์ ์ํํด ์ถ์ธ๋ฅผ ๋ณผ ์ ์์Z-์ฐจํธ ๊ทธ๋ฆฌ๊ธฐ (์ค์ต)Sales_Transaction ํ
์ด๋ธ์์ ํธ์ฃผ, ์ดํ๋ฆฌ์์ ์๋ณ ๋งค์ถ, ๋งค์ถ ๋๊ณ ๊ตฌํ๊ธฐ ## 1. ํธ์ฃผ, ์ดํ๋ฆฌ์์ ์๋ณ ๋งค์ถ, ๋งค์ถ ๋๊ณ ๊ตฌํ๊ธฐ SELECT Country ,DATE_FORMAT(STR_TO_DATE(Date,'%m/%d/%Y'),'%Y-%m') AS dt_month ..
๐ Today I Learn/๐ My SQL
240604 Today I LearnPivot Table๐ก ํผ๋ฒ ํ
์ด๋ธ(pivot table)ํ์ ํ๊ณผ ์ด์ ์ ํํ๋ ๋ฑ์ ๊ณผ์ ์ ํตํ์ฌ ํต๊ณ๋ฅผ ์ฌ์ ๋ ฌํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ก ํ ๋ฐ์ดํฐ๋ฅผ ์์ฝํ๋ ๋ฐฉ๋ฒ. ์ด์๋ ์ง๊ณํจ์(ํฉ๊ณ, ํ๊ท ๋ฑ)๊ฐ ์ฌ์ฉ๋ ์ ์๋ค.SQL๋ก Unpivot ํ๊ธฐ1. ์ผ๋ จ ๋ณํธ๋ฅผ ๊ฐ์ง ํ
์ด๋ธ ๋ง๋ค๊ธฐSELECT 1 AS idx UNION ALL SELECT 2 AS idxUNION ALL SELECT 3 AS idx UNION ALL SELECT 4 AS idx2. ํผ๋ฒ ํ
์ด๋ธ์ ๋ง๋ค๊ณ ์ด๋ฅผ CROSS JOIN ํ๊ธฐSELECT *FROM quarterly_sales CROSS JOIN (SELECT 1 AS idx UNION ALL SELECT 2 AS idx UNION..
240530 Today I Learn๋ฆฌํ
์
์ด๋?๐ก ๋ฆฌํ
์
(Retention)์๊ฐ์ด ์ง๋ ์๋ก ์ผ๋ง๋ ๋ง์ ์ ์ ๊ฐ ์ ํ์ผ๋ก ๋ค์ ๋์์ค๋์ง๋ฅผ ์ธก์ ํ ๊ฒ๊ณ ๊ฐ์ ์ด๋ค ํ๋์ ๋ฆฌํ
์
์ผ๋ก ์ผ์ ๊ฒ์ธ์ง๋ ์๋น์ค๋ง๋ค ์ฐจ์ด๊ฐ ์๋ค.ํํ ์ฌ๋ฐฉ๋ฌธ, ์ฌ๊ตฌ๋งค, ๊ตฌ๋งค ํ ๋ก๊ทธ์ธ ๋ฑ์ผ๋ก ์ ์๋จ์๋น์ค์ ๋ฐฉ๋ฌธ ๋น๋, ๊ตฌ๋งค ๋น๋, ๋๋ฉ์ธ ํน์ฑ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ ์๋ฆฌํ
์
์ ์ ์ํ ๋ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ‘๊ทธ ํ๋์ด ์ ๋ง ๋น์ฆ๋์ค์์ ์ค์ํ๊ฒ ์๊ฐํ๋ ๊ณ ๊ฐ์ ํต์ฌ ํ๋์ธ๊ฐ?’ ๋ผ๋ ๋ฌผ์์ด๋ค.๋ฆฌํ
์
์ ์ข
๋ฅ1. ํด๋์ ๋ฆฌํ
์
(Classic / N-Day)๊ณ ๊ฐ์ด A ํ๋์ ์ฒ์ ํ ๋ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก, ๋ช์ผ์ฐจ์ ๋ค์ A ํ๋์ ํ๋์ง๋ฅผ ๋ํ๋.ํ์ด์ค๋ถ, ์ธ์คํ๊ทธ๋จ, ์ ํ๋ธ, ํฑํก, ์ต๊ด ์ฑ ๋ฑ ๋งค์ผ๋งค์ผ ์ ์ํ๋ ์๋น์ค์์ ์ฌ์ฉํ๋ฃจ ๋จ์๋ก ์ง๊ณํ๋ ..
240528 Today I Learnํผ๋(Funnel)์ด๋?๐ก ํผ๋(Funnel)์ด๋?์๋น์์ ํ๋์ ๊ธฐ์
๊ด์ ์์ ์ฌ๊ตฌ์ฑํ ๊ฒ์ผ๋ก, ๊ณ ๊ฐ์ด ์ ์
๋์ด ์ ํ์ ์ด๋ฅด๋ ๋จ๊ณ๋ฅผ ์์น๋ก ํ์ธํ๊ณ ๋ถ์ํ๋ ๋ฐฉ๋ฒ๋ก → ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ ๊ณ ๊ฐ์ด ํผ๋์ ๋๊น์ง ํต๊ณผํ๋ ๊ฒ! ์ด๋ฅผ ์ ํ(conversion)/ Key Event ๋ผ๊ณ ํ๋ค.ํผ๋์ ์ข
๋ฅ๋ค1. ๋ง์ผํ
ํผ๋2.AARRR ํผ๋3. ์ฌ์ฉ์ ๊ทธ๋ฃน๋ณ ํผ๋ ๋น๊ต ํผ๋ ๋จ๊ณ ์๋ฆฝํ๊ธฐ๐
๋ง๋ณด๊ธฐ ์์๋ง์ฝ ์ฌ๋ฌ๋ถ๋ค์ด ์คํ๋ฅดํ ์ฝ๋ฉ ํด๋ฝ์ ๋ฐ์ดํฐ ๋ถ์๊ฐ์ด๊ณ , ์ ์ฒญ ๋ง๊ฐ์ผ์ด ๋ค๊ฐ์ ์ผ์ฃผ์ผ ์์ ๋ฐ์ดํฐ ๋ถ์ ํธ๋ 3๊ธฐ์ ์ฐธ๊ฐ์ ์๋ฅผ 5๋ฐฐ ์ด์ ์ฆ๊ฐ์ํค๊ณ ์ถ๋ค๋ฉด, ์ด๋ป๊ฒ ํด์ผํ ๊น์? โ
๋ด๊ฐ ์ด ๋ต์1. ํ๋ - ์น์ฌ์ดํธ ๋ฐฉ๋ฌธ, ๊ณต๊ณ ์กฐํ, ์ปค๋ฆฌํ๋ผ ์กฐํ2. ํ์ฑํ - ํ์๊ฐ์
3..
240523 Today I Learn์ด๋ ํ๊ท ์ ์ฌ์ฉํ ๋ ์ง๋ณ ๋งค์ถ ์ถ์ด ๋ณด๊ธฐ์ด๋ํ๊ท ์ด๋ ๋ฌด์์ผ๊น? ์ ์ฌ์ฉํ ๊น?๐ก ์ด๋ํ๊ท ๋ฒ์ด๋ ํ๊ท ๋ฒ์ ์ ์ฒด ๋ฐ์ดํฐ ์งํฉ์ ์ฌ๋ฌ ํ์์งํฉ์ ๋ํ ์ผ๋ จ์ ํ๊ท ์ ๋ง๋ค์ด ๋ฐ์ดํฐ ์์๋ฅผ ๋ถ์ํ๋ ๊ณ์ฐ์ด๋ค.ROWS BETWEEN lower_bound AND upper_boundโ`UNBOUNDED PRECEDING/ FOLLOWING`- ํ์ฌ row ์/๋ค์ ๋ชจ๋ row`n PRECEDING/ FOLLOWING` - ํ์ฌ row ์/๋ค์ n๊ฐ์ row`CURRENT ROW' - ํ์ฌ row์ด๋ํ๊ท ๊ตฌํ๊ธฐ - 7์ผ ์ด๋ํ๊ท ๊ตฌํ๊ธฐSELECT dt, SUM(purchase_amount), AVG(SUM(purchase_amount)) OVER(ORDER ..
240521 Today I LearnWindow Function๐ก Window Functionํ๊ณผ ํ์ ๊ด๊ณ๋ฅผ ์ ์ํ๊ธฐ ์ํด ์ ๊ณต๋๋ ํจ์๋ก ๋ชจ๋ ์ปฌ๋ผ์ ์๊ณ ์ถ์ง ์์ ๋ ์ฌ์ฉํ๋ค.# ์๋์ฐ ํจ์ ๊ธฐ๋ณธ๋ฌธ๋ฒ SELECT WINDOW_FUNCTION () OVER([PARTITION BY ์ปฌ๋ผ] [ORDER BY ์ปฌ๋ผ])FROM ํ
์ด๋ธ๋ช
โ ์ข
๋ฅํจ์์์RANK, DENSE_RANK, ROW_NUMBER์ง๊ณSUM, MAX, MIN, AVG, COUNT์์FIRST_VALUE, LAST_VALUE, LAG, LEAD๋น์จRATIO_TO_REPROT, CUME_DIST์์๐ก ROW_NUMBER' ์ค์ธ์ฐ๊ธฐ๋ฅผ ํ๋ค.' → ์ค์ธ์ฐ๊ธฐ๋ฅผ ํ๋ค๊ณ ํ์ ๋ ์ค๋ณต ์์ ๋ฐ์ ๋ถ๊ฐํจ.์ด๋ป๊ฒ๋ ์์๋ฅผ ์ง์ ํจ.ROW_NUMBE..