๐๏ธ ๋ฐ์ดํฐ ๋ถ์24 [๋ฐ์ดํฐ ๋ถ์์ ์ํ ํต๊ณ๊ฐ๋ 2] ๊ฐ์ค๊ฒ์ (with A/B Test) ๋ชฉ์ฐจ1. ๋ชจ์ง๋จ๊ณผ ํ๋ณธ ์๋น์ค์ ๊ด์ ์์ ๋ชจ์ง๋จ๊ณผ ํ๋ณธ์ ๋ถ๋ฅํ๊ณ A/B ํ ์คํธ๋ฅผ ์งํํ๋ค๊ณ ํ์.๊ทธ๋ด ๋ ๋ชจ์ง๋จ์ ์ง๊ธ ์ฐ๋ฆฌ์ ์ ์ฒด ๊ณ ๊ฐ์ ๋์ด ์์ผ๋ก์ ์๋น ๊ณ ๊ฐ์ ๋ชจ๋ ํฌํจํ ์ง๋จ์ด๋ค.๊ทธ๋ฆฌ๊ณ ํ๋ณธ์ ์ฐ๋ฆฌ๊ฐ ์คํ์ ์ํด ์ถ์ถํ ์ผ๋ถ ๊ณ ๊ฐ์ง๋จ์ด๋ค. ์ฌ๊ธฐ์ ์ค์ํ ์ ์, ์ฐ๋ฆฌ๊ฐ ๊ฑด๋ค์ผ ์ ์๋ ๋ถ๋ถ์ ์คํ์ ๋ ธ์ถ๋๋ '์ผ๋ถ ๊ณ ๊ฐ'์ด์ง ๋ชจ์ง๋จ์ธ ์ ์ฒด์ ๋ํด์๋ ์ ์๊ฐ ์๋ค๋ ๊ฒ์ด๋ค. 1) ๋ชจ์ง๋จ๊ณผ ๋ฐ์ดํฐ(ํ๋ณธ) ์ฌ์ด์ ์ค์ฐจ : ํ๋ณธ์ค์ฐจ ์ ์ฒด๋ฅผ ์ ์ ์๊ธฐ์ ์ฐ๋ฆฌ๋ ํ๋ณธ์ ๊ฐ์ง๊ณ ๋ชจ์ง๋จ์ ์ถ์ ํด์ผํ๋ค.์ด๋ ์ถ์ถํ ํ๋ณธ๊ณผ ๋ชจ์ง๋จ์ ๋ฐ์ดํฐ ์ฌ์ด์๋ ์ค์ฐจ๊ฐ ์์๊น ? ์ผ๋ฐ์ ์ผ๋ก ํ๋ณธํ๊ท ๊ณผ ๋ชจ์ง๋จํ๊ท ์ ์ผ์นํ์ง ์๋๋ค. ์ด๋ก์ ์ฐ๋ฆฌ๊ฐ ์ ๋ง ์๊ณ ์ถ์ ๊ฒ(๋ชจ์ง๋จ)๊ณผ ์ค์ ์ ์์ ์๋ ๋ฐ์ดํฐ(ํ๋ณธ)์๋ ์ค์ฐจ๊ฐ.. 2024. 12. 21. ์ด๋ํ๊ท ์ ๊ฐ๋ ๊ณผ SQL์์ ๊ตฌํํ๊ธฐ 1. ์ด๋ํ๊ท ์ด๋์ด๋ ํ๊ท (Moving Average)์ ๋ฐ์ดํฐ ๋ถ์์์ ์์ฃผ ์ฌ์ฉ๋๋ ๊ธฐ๋ฒ์ผ๋ก ์ฃผ๋ก ์๊ณ์ด ๋ฐ์ดํฐ์ ๋ณ๋์ฑ์ ์ค์ด๊ณ , ๋ฐ์ดํฐ์ ํจํด์ด๋ ์ถ์ธ๋ฅผ ํ์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ์ด๋ ํ๊ท ์ ํน์ ๊ธฐ๊ฐ ๋์์ ๋ฐ์ดํฐ ํฌ์ธํธ์ ํ๊ท ์ ๊ณ์ฐํ์ฌ, ๋ฐ์ดํฐ์ ๋ณํ๋ฅผ ๋ถ๋๋ฝ๊ฒ ๋ง๋ค์ด ์ค๋ค๋ ํน์ง์ด ์๋ค.๋ฐ๋ผ์ ๋ฐ์ดํฐ ๋ด์ ์ฅ๊ธฐ๊ฐ, ๋จ๊ธฐ๊ฐ์ ํธ๋๋๋ฅผ ์ฝ์ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค. 1) ๋จ์ ์ด๋ ํ๊ท (Simple Moving Average ; SMA)์ผ์ ํ ๊ธฐ๊ฐ ๋์์ ํ๊ท ์ ๊ณ์ฐํ๋ค.์ฌ๊ธฐ์ X_t๋ ํ์ฌ ์์ ์ ๊ฐ, n์ ํ๊ท ์ ๊ณ์ฐํ ๊ธฐ๊ฐ์ด๋ค. 2) ๊ฐ์ค ์ด๋ ํ๊ท (Weighted Moving Average; WMA)์ต๊ทผ์ ๋ฐ์ดํฐ ํฌ์ธํธ์ ๋ ํฐ ๊ฐ์ค์น๋ฅผ ๋ถํด ํ๊ท ์ ๊ณ์ฐํ๋ค.์ฌ๊ธฐ์ W_i๋ ๊ฐ ๋ฐ์ดํฐ .. 2024. 12. 14. LAG, LEAD๋ก ์ด์ , ๋ค์ํ ๊ฐ์ ธ์ค๊ธฐ ๋ชฉ์ฐจ1. LAG: ์ด์ ํ์ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ค. LAG(col_name) OVER(ORDER BY )SELECT LAG(job) OVER(ORDER BY job, empno) AS JOB_PREV job, empno ๊ธฐ์ค ์ ๋ ฌํ์ฌ ์ด์ ๊ฐ์ JOB_PREV ์ด๋ก ๊ฐ์ ธ์ด. 2. LEAD: ๋ค์ ํ์ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ค.LEAD(col_name) OVER(ORDER BY )SELECT LEAD(job) OVER(ORDER BY job, empono) AS JOB_NEXTjob, empno ๊ธฐ์ค ์ ๋ ฌํ์ฌ ๋ค์ ๊ฐ์ JOB_NEXT ์ด๋ก ๊ฐ์ ธ์ด. 3. ๊ณ ๊ธ ์ฌ์ฉ1) ๊ฐ์ ธ์ฌ ํ์ ์์น ์ง์ ํ๊ธฐ๋ฐ๋ก ์ด์ , ๋ค์ ๊ฐ์ด ์๋๋ผ nํ ๋ค์ ์๋, ์์ ์๋ ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์๋ค ... 2024. 12. 14. [Advent of SQL 2024 ๐] ์ ๋ ฅ ์๋น๋ ์ด๋ ํ๊ท ๊ตฌํ๊ธฐ (Day 14) ๋์ด๋4 Power Consumption of Tetouan City ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ชจ๋ก์ฝ ๋ถ๋ถ ๋์ ์ค ํ๋์ธ ํ ํฌ์ ์ง์ญ์ ์ ๋ ฅ ์๋น๋๊ณผ ๊ธฐ์ ๊ด์ธก์น๊ฐ ๋ค์ด์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋๋ค. ํ ํฌ์ ์ง์ญ์๋ Quads, Smir, Boussafou ์ด 3๊ฐ ์ง์ญ์ ๋ฐ์ ์๊ฐ ์์ผ๋ฉฐ ํด๋น ๋ฐ์ ์๋ก ๋ถํฐ์ ์ ๋ ฅ ์๋น๋์ด ๊ฐ๊ฐ ์ธก์ ๋์ด ์์ต๋๋ค. ์ ๋ ฅ ์๋น๋ ์ธก์ ์ ๋งค 10๋ถ๋ง๋ค ์์ํด 10๋ถ๊ฐ ์งํํ๋ ๋ฐฉ์์ด๊ณ , measured_at ์ปฌ๋ผ์ ์ธก์ ์์ ์๊ฐ์ด ๊ธฐ๋ก๋์ด ์์ต๋๋ค. ์ ๋ ฅ ์๋น๋์ ์๊ฐ์๊ฐ ํฌ๊ฒ ๋ณํํ๋ ๊ฐ์ด๊ธฐ์ ํธ๋ ๋๋ฅผ ๋ณด๊ฑฐ๋ ์์ ์์ธก์ ํ๊ธฐ ์ํด์ ๋จ์ ์ด๋ ํ๊ท ์ ์์ฃผ ์ฌ์ฉ ํฉ๋๋ค.2017๋ 1์ 1์ผ 0์๋ถํฐ 2017๋ 2์ 1์ผ 0์๊น์ง 10๋ถ ๋จ์๋ก 3๊ฐ ๋ฐ์ ์ ์ ๋ ฅ ์๋น๋์ 1์๊ฐ ๋ฒ์ .. 2024. 12. 14. COALESCE( )๋ฅผ ํตํด NULL๊ฐ ๋ณํํ๊ธฐ COALESCE( ) COALESCE(col1, col2, col2, ..., ...) COALESCEํจ์๋ ์ธ์๋ก ์ฃผ์ด์ง col๋ค ์ค์์ null์ด ์๋ ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋ฐํํ๋ ํจ์์ด๋ค. ๋ฐ๋ผ์ NULL๊ฐ์ ํน์ ๊ฐ์ผ๋ก ๋ณํํ๋ ๋ฐ ์ฌ์ฉํ๋ค๊ณ ๋ณด๋ฉด ๋๋ค. SELECT COALESCE(col1, '๊ณต๋ฐฑ') FROM member→ col1 ์ปฌ๋ผ์ NULL๊ฐ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ '๊ณต๋ฐฑ'์ผ๋ก ๋์ ์ถ๋ ฅํ๋ค. SELECT COALESCE(col1, col2, '๊ณต๋ฐฑ') FROM member→ col1 ์ปฌ๋ผ์ NULL๊ฐ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ col2์ผ๋ก ๋์ ๋ฐํํ๋ค. → ๋ง์ผ col2 ๊ฐ๋ NULL์ธ ๊ฒฝ์ฐ, '๊ณต๋ฐฑ'์ ๋์ ์ถ๋ ฅํ๋ค. IFNULL(col_name, 'NULL์ผ ๋์ ๋ฐํ๊ฐ') ์ญ์ NULL๊ฐ์ ์ฒ.. 2024. 12. 14. COUNT OVER( )๋ก ๊ทธ๋ฃน๋ณ ์ง๊ณํ๊ธฐ ๋ชฉ์ฐจ1. COUNT( ) OVER( ) COUNT ํจ์๋ฅผ OVER์ ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉด GROUP BY์ ์ ์ฌ์ฉํ์ง ์๊ณ ์ ์ฒด ๊ฑด์, ๊ทธ๋ฃน๋ณ ๊ฑด์๋ฅผ ์ง๊ณํด์ ๊ฐ ํ์ ํ์ํ ์ ์๋ค. 1) ์ ์ฒด ์ด ๊ฑด์ ๊ตฌํ๊ธฐCOUNT(*) OVER()SELECT *, COUNT(*) OVER() AS TOTAL_COUNTFROM ECOLI_DATA ๋จ์ํ COUNT(*)๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์กฐํ๋ ๋ฐ์ดํฐ์ ์ด ๊ฑด์๋ฅผ ๊ตฌํ๋ค. TOTAL_COUNT > ๋ชจ๋ ๋์ผํ๊ฒ ์ ์ฒด ๋ฐ์ดํฐ ๊ฑด์ ๊ฐ์ ํ์ํจ. * OVER ์ ์ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์กฐํ๋ ํ ORDER BY ์คํ๋๊ธฐ ๋ฐ๋ก ์ ์ ์คํ๋จ. 2) ์์ฐจ์ ๋์ ๊ฑด์ ๊ตฌํ๊ธฐ COUNT(*) OVER(ORDER BY COLNAME) AS ALIAS SELECT *, COUNT(*) OV.. 2024. 12. 14. ์ด์ 1 2 3 4 ๋ค์