Daily plan
๐์ค์
- SQL ์ฝ๋์นดํ 95, 96, 97๋ฒ
- 10์ ํต๊ณ ๋ผ์ด๋ธ์ธ์
๐ฅ ์คํ
- ํต๊ณ ๊ฐ์ 5,6์ฃผ์ฐจ + ๋ด์ฉ ์ ๋ฆฌ
- 14์ ์ํฐํด ์คํฐ๋
- ๋จธ์ ๋ฌ๋ 1์ฃผ์ฐจ ๊ฐ์
๐ ์ ๋
- TIL ์ ์ถํด !!!!
To Do
์ด๋ฒ์ฃผ ๋ชฉํ
select query_name,
round((sum(rating/position)/count(1)),2) quality,
round(1/count(1)*100,2) poor_query_percentage
from queries
group by query_name
select date_format(trans_date,'%Y-%m') month,
country,
count(1) trans_count,
count(case when state='approved' then 1 end) approved_count,
sum(amount) trans_total_amount,
sum(case when state='approved' then amount else 0 end) approved_total_amount
from transactions
group by 1,2
select round(count(case when state='immediate' then 1 end)/count(1)*100,2) immediate_percentage
from(
select customer_id,
case when customer_pref_delivery_date=order_date then 'immediate' else 'scheduled' end state,
rank() over(partition by customer_id order by order_date ) order_rank
from delivery
) a
where order_rank=1
๋ ๊ฐ๋ตํ๊ฒ ๋ง๋ค ์ ์์ ๊ฑฐ ๊ฐ์ ์์ฃผ ์ฐ์ฐํ ์ฟผ๋ฆฌ..
๋ฌธ์ ๊ตฌ์กฐ ํ์
ํ๋ ค๊ณ ์๋ธ์ฟผ๋ฆฌ ์์ case when ๊ตฌ๋ฌธ์ผ๋ก state๋ผ๋ ์ปฌ๋ผ์ ์๋ก ๋ง๋ค์ด์คฌ๋๋ฐ, ๋ฌธ์ ๋ฅผ ํธ๋ ๊ณผ์ ์ ๊ตณ์ด ํ์์๋ ๋ถ๋ถ์ด๋ผ ์ญ์ ํ๋ค.
๊ทธ๋ฆฌ๊ณ rank๋ ์ข ๊ณผํ ๊ฒ ๊ฐ๊ณ , ์ค๋ณต๋ ์ง๊ฐ ์๋๋ผ๋ ํ๋๋ง ๋ณด๋ฉด ๋๊ธฐ ๋๋ฌธ์ row_number๋ฅผ ์ฌ์ฉํด์ ์ฒซ ์ฃผ๋ฌธ๋ง ํํฐ๋งํ๋ ๊ฒ ๋ ์ข์ ๊ฒ ๊ฐ๋ค.
์์ ๋ ์ฟผ๋ฆฌ
select round(
sum(case when customer_pref_delivery_date = order_date then 1 else 0 end)
/count(1) *100
,2) immediate_percentage
from(
select *,
row_number() over(partition by customer_id order by order_date) rn
from delivery
) d
where rn=1
count(case when customer_pref_delivery_date = order_date then 1 else 0 end)๋ผ๊ณ ์ผ๋๋ ์ค๋ต์ด ๋์์ sum์ผ๋ก ๋ฐ๊พธ์๋ค.
else 0์ ์ผ๊ธฐ ๋๋ฌธ์ count์ ๊ฒฝ์ฐ์๋ 1, 0 ๋ชจ๋ ๊ฐ์๋ฅผ ์ธ๊ธฐ ๋๋ฌธ์ ์ํ๋ ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ๋ ๊ฐ์์ ํฌํจ๋์ด ์ค๋ต์ด ๋๋ค.
sum์ผ๋ก ๋ฐ๊พธ๋ฉด ์ํ๋ ์กฐ๊ฑด์ ์ผ์นํ ๋์๋ง 1์ ๋ํ๋ฏ๋ก ์ ๋ต์ ์ป์ ์ ์๋ค.
๋น์จ ๊ณ์ฐ์ ํ ๋์๋ sum์ ์ฌ์ฉํ๋ ๊ฒ ๋ ์์ ์ ์ผ๋ฏ!
์ฃผํผํฐ์ ์์๋๋ค^^

(ํผ์ด์จ ์๊ด๊ณ์/ ์คํผ์ด๋ง ์๊ด๊ณ์/ ์ผ๋ฌ์ ํ์ฐ ๋น์ ํ ์๊ด๊ณ์)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import pearsonr
np.random.seed(0)
study_hours = np.random.rand(100)*10
exam_scores = 3* study_hours + np.random.randn(100)*5
df - pd.DataFrame({'Study Hours':study_hours, 'Exam Scores': exam_scores
pearson_corr, _ = pearsonr(df['Study Hours'], df['Exam Scores'])
sns.heatmap(df.corr(), annot=True, cmap='coolwarm', vmin=-1, vmax=1)
plt.title('pearson coefficient heatmap')
plt.show()
from scipy.stats import spearmanr, kendalltau
d
๋ฐ์ดํฐ ์๊ฐํ(2) ์ง๊ด์ ์ธ ๋ฐ์ดํฐ ์๊ฐํ ๋ง๋ค๊ธฐ
์๊ฐ ์ ๋ณด ์ฒ๋ฆฌ๊ณผ์
โ ์๊ฐ ์ ๋ณด๋ค์ ์๋์ ์ผ๋ก ๋์์ธํ์ฌ ํด์์ ๋์์ ์ฃผ๋ ์ง๊ด์ ์ธ ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ๋ง๋ค ์ ์์
์ ์ฃผ์์ ์์ฑ
: ๋ฌด์์ ๋ณด์๋ง์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ง ์์๋ ์์์ฐจ๋ฆฌ๋ ์๊ฐ ์์๋ค
๋ง์ ์์ฑ์ ํ๋ฒ์ ์ฌ์ฉํ๋ฉด ์คํ๋ ค ์ด๋ค ์ ๋ณด๊ฐ ์ค์ํ์ง ์ ์ ์๊ฒ ๋จ
โ ๋๋ฌด ๋ง์ ์์ฑ์ ์ด์ฉํ์ง ์๊ณ , ์ค์ ์๋ํ ์ ๋ณด๊ฐ ๋์ ๋๋์ง ์ ์ ํ
์คํ
์ ํตํด ํ์ธํด์ผ ํจ
๊ฒ์ํํธ ์๋ฆฌ
: ๋๋ ์ฌ๋ฌผ์ ๊ตฌ์ฑ ์์๋ฅผ ๋ถํดํ๋ ๊ฒ๋ณด๋ค ํฐ ์ ์ฒด๋ฅผ ์ดํดํ๋ ๋ฐ ํ์ํ๋ฉฐ, ํน์ ๊ท์น ์ ์ฉ ์ ์์๋ค์ ์ฐ๊ด๋ ํ๋์ ๊ทธ๋ฃน์ผ๋ก ์ธ์ํ๋ ๊ฒฝํฅ์ด ์์
โ ๋ณต์กํ ์๊ฐ ์ ๋ณด๋ฅผ ์ดํดํ๊ธฐ ์ฌ์ด ํํ๋ก ์ ๋ฆฌํ์ฌ ํจํด์ ์ธ์ ๊ฐ๋ฅ
๋์ผํ ๋ฐ์ดํฐ ๋ถ์ ๊ฒฐ๊ณผ๋ ์ด๋ป๊ฒ ํํํ๋๋์ ๋ฐ๋ผ ํด์์ด ์ ํ ๋ฌ๋ผ์ง ์ ์๋ค. ์๋ํ ๋ฐ๋ฅผ ์ ํํ๊ฒ ์ ๋ฌํ๊ธฐ ์ํ์ฌ ์ ์ ํ ์๊ฐํ ๊ธฐ๋ฒ์ ์ด์ฉํ๊ณ , ์, ๋ชจ์, ๋ฐฉํฅ, ๋ฐฐ์ด ๋ฑ ์ธ๋ถ์ ์ธ ์์๋ค๋ ๋ชจ๋ ๊ณ ๋ คํด์ผ ํ๋ค. ์๊ฐํ๋ฅผ ํตํด์ ์ ๋ฌํ๋ ค๋ ๋ฐ๋ฅผ ๊ฐ์กฐํ ์๋ ์์ง๋ง ์๊ณก์ด๋ ๊ณผ์ฅ ๋ฑ ๋ถ์ ํํ ์ ๋ณด ์ ๋ฌ์ด ์ด๋ฃจ์ด์ง ์ ์๋ค๋ ๊ฒ์ ์ฃผ์ํด์ผ๊ฒ ๋ค.
์ธ์ถ ํ๋ฒ ํ๋ฝ ๋งก์ผ๋ ค๋ฉด ๋ชฉ์จ ๊ฑธ์ด์ผ ํ๋ ์ฐ๋ฆฌ ์กฐใ
ใ
์ ๋ฒ์ ์ต๋ช
์ ๋ค๋ฅธ ์กฐ์๋ถ๊ป์ ์ฐ๋ฆฌ ์กฐ ๋๋ฌด ํ๋ํ ๊ฑฐ ๊ฐ๋์ฌ...ใ
ใ
ใ
ใ
(๊ทผ๋ฐ ์ง์ง์.. ์ง์ง ์ฝ์ง ์์ใ
ใ
)
์ฐ๋ฆฌ์กฐ ์ค๋์ ์ด์ ๋ธ๋ฆฌํ
๋จธ์ ๋ฌ๋ ๊ฐ์ ๋นจ๋ฆฌ ๋ค์ด์ผํ๋๋ฐ,, ๋ผ์ด๋ธ์ธ์
์ด๋ ํต๊ณ ๊ฐ์ ๋ฃ๋ค ๋ณด๋๊น ์๊พธ ๋ฏธ๋ฃจ๊ฒ ๋๋คใ
ใ
ํ์ผ์ ๋ชป๋ค์ผ๋ฉด ์ฃผ๋ง์๋ผ๋ ๊ผญ ๋ค์ด์ ์ด๋ฒ ์ฃผ ์์ ๋๋ด๋์ !
ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ์ด์ ๋ณด๋ ์ด์ ์ ๋ง ๋ง์ ์ผ์ด ์์๋ค์ฌ
๋ด 14๋ง์........................