
1. π λ¬Έμ μ€λͺ
λ€μμ μ΄λ μλ₯ μΌνλͺ°μ κ°μ
ν νμ μ 보λ₯Ό λ΄μ USER_INFO
ν
μ΄λΈκ³Ό μ¨λΌμΈ μν ν맀 μ 보λ₯Ό λ΄μ ONLINE_SALE
ν
μ΄λΈ μ
λλ€. USER_INFO
ν
μ΄λΈμ μλμ κ°μ κ΅¬μ‘°λ‘ λμ΄μμΌλ©° USER_ID, GENDER, AGE, JOINEDλ κ°κ° νμ ID, μ±λ³, λμ΄, κ°μ
μΌμ λνλ
λλ€.
USER_INFO
Column name | Type | Nullable |
---|---|---|
USER_ID | INTEGER | FALSE |
GENDER | TINYINT(1) | TRUE |
AGE | INTEGER | TRUE |
JOINED | DATE | FALSE |
GENDER
컬λΌμ λΉμ΄μκ±°λ 0 λλ 1μ κ°μ κ°μ§λ©° 0μΈ κ²½μ° λ¨μλ₯Ό, 1μΈ κ²½μ°λ μ¬μλ₯Ό λνλ
λλ€.
ONLINE_SALE ν μ΄λΈμ μλμ κ°μ κ΅¬μ‘°λ‘ λμ΄μμΌλ©° ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATEλ κ°κ° μ¨λΌμΈ μν ν맀 ID, νμ ID, μν ID, ν맀λ, ν맀μΌμ λνλ λλ€.
ONLINE_SALE
Column name | Type | Nullable |
---|---|---|
ONLINE_SALE_ID | INTEGER | FALSE |
USER_ID | INTEGER | FALSE |
PRODUCT_ID | INTEGER | FALSE |
SALES_AMOUNT | INTEGER | FALSE |
SALES_DATE | DATE | FALSE |
λμΌν λ μ§, νμ ID, μν ID μ‘°ν©μ λν΄μλ νλμ ν맀 λ°μ΄ν°λ§ μ‘΄μ¬ν©λλ€.
2. π λ¬Έμ
USER_INFO
ν
μ΄λΈκ³Ό ONLINE_SALE
ν
μ΄λΈμμ 2021λ
μ κ°μ
ν μ 체 νμλ€ μ€ μνμ ꡬ맀ν νμμμ μνμ ꡬ맀ν νμμ λΉμ¨(=2021λ
μ κ°μ
ν νμ μ€ μνμ ꡬ맀ν νμμ / 2021λ
μ κ°μ
ν μ 체 νμ μ)μ λ
, μ λ³λ‘ μΆλ ₯νλ SQLλ¬Έμ μμ±ν΄μ£ΌμΈμ.
μνμ ꡬ맀ν νμμ λΉμ¨μ μμμ λλ²μ§Έμ리μμ λ°μ¬λ¦Όνκ³ , μ 체 κ²°κ³Όλ λ
μ κΈ°μ€μΌλ‘ μ€λ¦μ°¨μ μ λ ¬ν΄μ£Όμκ³ λ
μ΄ κ°λ€λ©΄ μμ κΈ°μ€μΌλ‘ μ€λ¦μ°¨μ μ λ ¬ν΄μ£ΌμΈμ.
3. π‘ μ λ΅
<code />
# μνμ ꡬ맀ν νμμμ μνμ ꡬ맀ν νμμ λΉμ¨μ λ
, μ λ³λ‘ μΆλ ₯
# (λΉμ¨ : 2021λ
μ κ°μ
ν νμ μ€ μνμ ꡬ맀ν νμμ / 2021λ
μ κ°μ
ν μ 체 νμ μ)
SELECT DATE_FORMAT(OS.SALES_DATE, '%Y') AS YEAR
, DATE_FORMAT(OS.SALES_DATE, '%m') AS MONTH
, COUNT(DISTINCT UI.USER_ID) AS PUCHASED_USERS
, ROUND((COUNT(DISTINCT UI.USER_ID)) / (SELECT COUNT(DISTINCT USER_ID) FROM USER_INFO WHERE DATE_FORMAT(JOINED, '%Y') = '2021'), 1) AS PUCHASED_RATIO
FROM USER_INFO UI
INNER JOIN ONLINE_SALE OS
ON UI.USER_ID = OS.USER_ID
WHERE DATE_FORMAT(UI.JOINED, '%Y') = '2021'
GROUP BY YEAR
, MONTH
ORDER BY YEAR ASC, MONTH ASC
4. π μ€ν κ²°κ³Ό
YEAR | MONTH | PUCHASED_USERS | PUCHASED_RATIO |
---|---|---|---|
2022 | 01 | 47 | 0.3 |
2022 | 02 | 40 | 0.3 |
2022 | 03 | 6 | 0.0 |
'Algorithm & SQL > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€ SQL] κ°μ₯ λΉμΌ μν ꡬνκΈ° (0) | 2023.04.04 |
---|---|
[νλ‘κ·Έλλ¨Έμ€ SQL] κ°κ²©μ΄ μ μΌ λΉμΌ μνμ μ 보 μΆλ ₯νκΈ° (0) | 2023.04.03 |
[νλ‘κ·Έλλ¨Έμ€ SQL] μ€λ κΈ°κ° λ³΄νΈν λλ¬Ό(1) (0) | 2023.03.29 |
[νλ‘κ·Έλλ¨Έμ€ SQL] μν λ³ μ€νλΌμΈ λ§€μΆ κ΅¬νκΈ° (0) | 2023.03.28 |
[νλ‘κ·Έλλ¨Έμ€ SQL] 보νΈμμμ μ€μ±νν λλ¬Ό (0) | 2023.03.27 |