๋ฌธ์ ์ค๋ช
๋ค์์ ์ด๋ ์๋ฅ ์ผํ๋ชฐ์ ๊ฐ์ ํ ํ์ ์ ๋ณด๋ฅผ ๋ด์ USER_INFO ํ ์ด๋ธ๊ณผ ์จ๋ผ์ธ ์ํ ํ๋งค ์ ๋ณด๋ฅผ ๋ด์ ONLINE_SALE ํ ์ด๋ธ ์ ๋๋ค.USER_INFO ํ ์ด๋ธ์ ์๋์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด์์ผ๋ฉฐ USER_ID, GENDER, AGE, JOINED๋ ๊ฐ๊ฐ ํ์ ID, ์ฑ๋ณ, ๋์ด, ๊ฐ์ ์ผ์ ๋ํ๋ ๋๋ค.
Column nameTypeNullable
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, ํ๋งค๋, ํ๋งค์ผ์ ๋ํ๋ ๋๋ค.
Column nameTypeNullable
ONLINE_SALE_ID | INTEGER | FALSE |
USER_ID | INTEGER | FALSE |
PRODUCT_ID | INTEGER | FALSE |
SALES_AMOUNT | INTEGER | FALSE |
SALES_DATE | DATE | FALSE |
๋์ผํ ๋ ์ง, ํ์ ID, ์ํ ID ์กฐํฉ์ ๋ํด์๋ ํ๋์ ํ๋งค ๋ฐ์ดํฐ๋ง ์กด์ฌํฉ๋๋ค.
๋ฌธ์
USER_INFO ํ ์ด๋ธ๊ณผ ONLINE_SALE ํ ์ด๋ธ์์ ๋ , ์, ์ฑ๋ณ ๋ณ๋ก ์ํ์ ๊ตฌ๋งคํ ํ์์๋ฅผ ์ง๊ณํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ๊ฒฐ๊ณผ๋ ๋ , ์, ์ฑ๋ณ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์. ์ด๋, ์ฑ๋ณ ์ ๋ณด๊ฐ ์๋ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ์์ ์ ์ธํด์ฃผ์ธ์.
๋ฌธ์ ํ์ด
SELECT YEAR(SALES_DATE), MONTH(SALES_DATE), GENDER, COUNT(DISTINCT ONLINE_SALE.USER_ID)
FROM USER_INFO
JOIN ONLINE_SALE ON USER_INFO.USER_ID=ONLINE_SALE.USER_ID
WHERE GENDER IS NOT NULL
GROUP BY YEAR(SALES_DATE),MONTH(SALES_DATE),GENDER
ORDER BY YEAR(SALES_DATE),MONTH(SALES_DATE),GENDER;
- USER_INFO ํ ์ด๋ธ๊ณผ ONLINE_SALE ํ ์ด๋ธ์ USER_ID๋ฅผ ๊ธฐ์ค์ผ๋ก JOINํ๋ค.
- ์ฑ๋ณ(GENDER) ์ปฌ๋ผ์ด NULL์ด ์๋ ๋ฐ์ดํฐ๋ค์ ์ถ์ถํ๋ค.
- ํ๋งค ๋ ์ง์ ๋ , ์, ์ฑ๋ณ์ ๊ธฐ์ค์ผ๋ก GROUP BY๋ฅผ ์ด์ฉํด์ ๊ทธ๋ฃนํํ๋ค.
- ํ๋งค ๋ ์ง์ ๋ , ์, ์ฑ๋ณ๋ณ๋ก ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ์ ๋ํ ๊ฐ์(๊ฐ ๊ทธ๋ฃน๋ณ๋ก ์ํ์ ๊ตฌ๋งคํ ํ์)๋ฅผ ์ถ๋ ฅํ๋ค.
- ์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ด๋ฉด์ ์ฒ์์ ํ๋ ธ๋ ์ด์ ๋ ์ค๋ณต์ ์ ๊ฑฐํด์ฃผ๋ DINSTINCT ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ง ์๊ณ ๋ชจ๋ ๋ฐ์ดํฐ์ ๊ฐฏ์๋ฅผ ์ธ์ด์คฌ๊ธฐ ๋๋ฌธ์ด๋ค.
ONLINE_SALES ํ ์ด๋ธ์ ๋ณด๋ฉด, USER_ID๊ฐ 1์ธ์ฌ์ฉ์๊ฐ 2022๋ 1์์ ๊ตฌ๋งคํ ๋ด์ญ์ด 2๋ฒ์ธ๋ฐ, ์ฌ๊ธฐ์ 2022๋ 1์์ ๊ตฌ๋งคํ ํ์ ์๋ฅผ ๊ตฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ 1๋ฒ๋ง ์นด์ดํ ์ ํด์ค์ผ ํ๋ค!
๊ทธ๋์ COUNT๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ์ ๊ฐฏ์๋ฅผ ์ธ์ด์ค ๋, DISTINCT USER_ID๋ฅผ ์ด์ฉํด์ USER_ID์ ์ค๋ณต์ ์ ๊ฑฐํด์ฃผ๊ณ ๊ฐฏ์๋ฅผ ์ธ์ด์ผ ํ๋ค.
- ๋ง์ง๋ง์ผ๋ก ํ๋งค ๋ ์ง์ ๋ , ์, ์ฑ๋ณ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ค.