
SQL - Window Functions
ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, NTILE, SUM OVER, PARTITION BY, frames
1SQL์์ window function์ด๋ ๋ฌด์์
๋๊น?
SQL์์ window function์ด๋ ๋ฌด์์ ๋๊น?
๋ต๋ณ
window function์ ํ์ฌ ํ๊ณผ ๊ด๋ จ๋ ํ ์งํฉ์ ๋ํด ๊ณ์ฐ์ ์ํํ๋ฉฐ, ๊ฒฐ๊ณผ๋ฅผ ๋จ์ผ ์ถ๋ ฅ ํ์ผ๋ก ์ถ์ํ์ง ์์ต๋๋ค. ํ ์๋ฅผ ์ค์ด๋ GROUP BY์ ๋ฌ๋ฆฌ, window function์ ๊ณ์ฐ๋ ์ด์ ์ถ๊ฐํ๋ฉด์ ๊ฒฐ๊ณผ์ ๋ชจ๋ ํ์ ๋ณด์กดํฉ๋๋ค. OVER() ์ ์ ๊ณ์ฐ์ด ์ํ๋๋ ์๋์ฐ๋ฅผ ์ ์ํฉ๋๋ค.
2window function์ ์ ์ํ๊ธฐ ์ํด ํ์์ธ ์ ์ ๋ฌด์์
๋๊น?
window function์ ์ ์ํ๊ธฐ ์ํด ํ์์ธ ์ ์ ๋ฌด์์ ๋๊น?
๋ต๋ณ
OVER() ์ ์ ๋ชจ๋ window function์ ํ์์ ๋๋ค. ์ด๋ SQL ์์ง์ ํจ์๊ฐ ์ผ๋ฐ ์ง๊ณ ํจ์๊ฐ ์๋ window function์ผ๋ก ์คํ๋์ด์ผ ํจ์ ์๋ ค์ค๋๋ค. OVER()๋ PARTITION BY, ORDER BY ๋ฐ frame ์ง์ ์ ํฌํจํ ์ ์์ง๋ง, ์ ์ฒด ๊ฒฐ๊ณผ ์งํฉ์ ๊ณ์ฐ์ ์ ์ฉํ๊ธฐ ์ํด ๋น์๋ ์๋ ์์ต๋๋ค.
3window function์์ PARTITION BY์ ์ญํ ์ ๋ฌด์์
๋๊น?
window function์์ PARTITION BY์ ์ญํ ์ ๋ฌด์์ ๋๊น?
๋ต๋ณ
PARTITION BY๋ ํ ์งํฉ์ ๋ ๋ฆฝ์ ์ธ ๊ทธ๋ฃน(ํํฐ์ )์ผ๋ก ๋๋๊ณ , window function์ ๊ฐ ํํฐ์ ์ ๊ฐ๋ณ์ ์ผ๋ก ์ ์ฉ๋ฉ๋๋ค. GROUP BY์ ๋ฌ๋ฆฌ PARTITION BY๋ ๊ฒฐ๊ณผ์ ํ ์๋ฅผ ์ค์ด์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, SUM(sales) OVER(PARTITION BY region)์ ๊ฐ ๊ฐ๋ณ ํ์ ๋ณด์กดํ๋ฉด์ ์ง์ญ๋ณ ์ด ๋งค์ถ์ ๊ณ์ฐํฉ๋๋ค.
GROUP BY์ PARTITION BY์ ์ฃผ์ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น?
ROW_NUMBER() OVER(ORDER BY salary DESC)๋ ๋ฌด์์ ๋ฐํํฉ๋๊น?
+17 ๋ฉด์ ์ง๋ฌธ
๊ธฐํ Data Analytics ๋ฉด์ ์ฃผ์
Google Sheets - ๊ธฐ์ด
Google Sheets - ๊ณ ๊ธ ์์
SQL - ๊ธฐ์ด
SQL - ์ง๊ณ ๋ฐ ๊ทธ๋ฃนํ
SQL - ์กฐ์ธ
BigQuery - ๊ธฐ์ด
Data Cleaning - ๋ฐ์ดํฐ ์ ์
KPI ๋ฐ ๋น์ฆ๋์ค ๋ฉํธ๋ฆญ
๊ธฐ์ ํต๊ณ
Zapier์ No-Code ์๋ํ
๋ฐ์ดํฐ ์๊ฐํ ์์น
Python & Pandas - ๊ธฐ์ด
Google Sheets - ์๋ํ๋ ๋์๋ณด๋
SQL - ์๋ธ์ฟผ๋ฆฌ์ CTE
BigQuery - ๊ณ ๊ธ ๊ธฐ๋ฅ
Data Modeling
ํผ๋ ๋ฐ ์ ํ ๋ถ์
์ฝํธํธ ๋ฐ ๋ฆฌํ ์ ๋ถ์
Google Tag Manager ๋ฐ ํธ๋ํน
API์ ์นํ
dbt - ๊ธฐ์ด
AB ํ ์คํธ์ ์์ฉ ํต๊ณํ
Looker Studio (Google Data Studio)
Power BI - ๊ธฐ์ด
SQL - ๊ณ ๊ธ ๋ถ์ ์ฟผ๋ฆฌ
dbt - ๊ณ ๊ธ ๊ธฐ๋ฅ
Power BI - DAX ๋ฐ ๊ณ ๊ธ ๋์๋ณด๋
Python Analytics - ๊ณ ๊ธ ๋ถ์ ๋ฐ ML
๋ค์ ๋ฉด์ ์ ์ํด Data Analytics์ ๋ง์คํฐํ์ธ์
๋ชจ๋ ์ง๋ฌธ, flashcards, ๊ธฐ์ ํ ์คํธ, ์ฝ๋ ๋ฆฌ๋ทฐ ์ฐ์ต, ๋ฉด์ ์๋ฎฌ๋ ์ดํฐ์ ์ ๊ทผํ์ธ์.
๋ฌด๋ฃ๋ก ์์ํ๊ธฐ