1. λ¬Έμ μ€λͺ
λ€μμ μ΄λ μλ₯ μΌνλͺ°μ κ°μ ν νμ μ 보λ₯Ό λ΄μ USER_INFO ν μ΄λΈκ³Ό μ¨λΌμΈ μν νλ§€ μ 보λ₯Ό λ΄μ ONLINE_SALE ν μ΄λΈ μ λλ€. USER_INFO ν μ΄λΈμ μλμ κ°μ κ΅¬μ‘°λ‘ λμ΄μμΌλ©° USER_ID, GENDER, AGE, JOINEDλ κ°κ° νμ ID, μ±λ³, λμ΄, κ°μ μΌμ λνλ λλ€.

GENDER 컬λΌμ λΉμ΄μκ±°λ 0 λλ 1μ κ°μ κ°μ§λ©° 0μΈ κ²½μ° λ¨μλ₯Ό, 1μΈ κ²½μ°λ μ¬μλ₯Ό λνλ λλ€. ONLINE_SALE ν μ΄λΈμ μλμ κ°μ κ΅¬μ‘°λ‘ λμ΄μμΌλ©° ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATEλ κ°κ° μ¨λΌμΈ μν νλ§€ ID, νμ ID, μν ID, νλ§€λ, νλ§€μΌμ λνλ λλ€.

λμΌν λ μ§, νμ ID, μν ID μ‘°ν©μ λν΄μλ νλμ νλ§€ λ°μ΄ν°λ§ μ‘΄μ¬ν©λλ€.
USER_INFO ν μ΄λΈκ³Ό ONLINE_SALE ν μ΄λΈμμ 2021λ μ κ°μ ν μ 체 νμλ€ μ€ μνμ ꡬ맀ν νμμμ μνμ ꡬ맀ν νμμ λΉμ¨(=2021λ μ κ°μ ν νμ μ€ μνμ ꡬ맀ν νμμ / 2021λ μ κ°μ ν μ 체 νμ μ)μ λ , μ λ³λ‘ μΆλ ₯νλ SQLλ¬Έμ μμ±ν΄μ£ΌμΈμ. μνμ ꡬ맀ν νμμ λΉμ¨μ μμμ λλ²μ§Έμ리μμ λ°μ¬λ¦Όνκ³ , μ 체 κ²°κ³Όλ λ μ κΈ°μ€μΌλ‘ μ€λ¦μ°¨μ μ λ ¬ν΄μ£Όμκ³ λ μ΄ κ°λ€λ©΄ μμ κΈ°μ€μΌλ‘ μ€λ¦μ°¨μ μ λ ¬ν΄μ£ΌμΈμ.
2. μΆλ ₯ μμ

3. λ¬Έμ λ΅μ
# 2021λ
μ κ°μ
ν μ 체 νμ μ
WITH total AS (
SELECT COUNT(DISTINCT user_id) AS total_users
FROM user_info
WHERE joined >= '2021-01-01' AND
joined < '2022-01-01'
)
# pu'r'chased_ratio λ¬Έμ μ€ν
SELECT
YEAR(o.sales_date) as year,
MONTH(o.sales_date) as month,
COUNT(DISTINCT o.user_id) as purchased_users,
ROUND((COUNT(DISTINCT o.user_id) / total.total_users), 1) as puchased_ratio
FROM user_info u
JOIN online_sale o
ON u.user_id = o.user_id
CROSS JOIN total
WHERE u.joined >= '2021-01-01' AND
u.joined < '2022-01-01'
GROUP BY YEAR(o.sales_date), MONTH(o.sales_date)
ORDER BY year ASC, month ASC;'π₯οΈ μ½λ©ν μ€νΈ > SQL' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [νλ‘κ·Έλλ¨Έμ€] [SQL] ν ν΄μ μ‘μ λ¬Όκ³ κΈ° μ ꡬνκΈ° (0) | 2026.02.17 |
|---|---|
| [νλ‘κ·Έλλ¨Έμ€] [SQL] νΉμ νμ§μ κ°μ§λ λμ₯κ· μ°ΎκΈ° (0) | 2026.02.17 |
| [νλ‘κ·Έλλ¨Έμ€] [SQL] FrontEnd κ°λ°μ μ°ΎκΈ° (0) | 2026.02.16 |
| [νλ‘κ·Έλλ¨Έμ€] [SQL] 보νΈμμμ μ€μ±νν λλ¬Ό (0) | 2026.02.16 |
| [νλ‘κ·Έλλ¨Έμ€] [SQL] μ€λ κΈ°κ° λ³΄νΈν λλ¬Ό(1) (0) | 2026.02.16 |