๊ด€๋ฆฌ ๋ฉ”๋‰ด

Jerry

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/SQL ๊ณ ๋“์  Kit] ๋…„, ์›”, ์„ฑ๋ณ„ ๋ณ„ ์ƒํ’ˆ ๊ตฌ๋งค ํšŒ์› ์ˆ˜ ๊ตฌํ•˜๊ธฐ ๋ณธ๋ฌธ

Problem Solving/SQL ๋ฌธ์ œ ํ’€๊ธฐ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/SQL ๊ณ ๋“์  Kit] ๋…„, ์›”, ์„ฑ๋ณ„ ๋ณ„ ์ƒํ’ˆ ๊ตฌ๋งค ํšŒ์› ์ˆ˜ ๊ตฌํ•˜๊ธฐ

juicyjerry 2023. 11. 7. 15:01
๋ฐ˜์‘ํ˜•

๐Ÿ’ช๋ฌธ์ œ
USER_INFO ํ…Œ์ด๋ธ”๊ณผ ONLINE_SALE ํ…Œ์ด๋ธ”์—์„œ ๋…„, ์›”, ์„ฑ๋ณ„ ๋ณ„๋กœ ์ƒํ’ˆ์„ ๊ตฌ๋งคํ•œ ํšŒ์›์ˆ˜๋ฅผ ์ง‘๊ณ„ํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ๊ฒฐ๊ณผ๋Š” ๋…„, ์›”, ์„ฑ๋ณ„์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ, ์„ฑ๋ณ„ ์ •๋ณด๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๊ฒฐ๊ณผ์—์„œ ์ œ์™ธํ•ด์ฃผ์„ธ์š”.

 

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 

๐Ÿ’ช ๋‚˜์˜ ์ •๋‹ต

SELECT YEAR(B.SALES_DATE) AS "YEAR", MONTH(B.SALES_DATE) AS "MONTH", A.GENDER, COUNT(DISTINCT B.USER_ID) AS "USERS"
FROM USER_INFO AS A
JOIN ONLINE_SALE AS B
ON A.USER_ID = B.USER_ID
WHERE A.GENDER IS NOT NULL
GROUP BY YEAR, MONTH, A.GENDER
ORDER BY 1, 2, 3;



 

 

๐Ÿ’ช ๋‹ค๋ฅธ ์ •๋‹ต

- ...

 

 

๐Ÿ’ช ๋ฐฐ์šด ์ 

WHERE์œผ๋กœ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ฒƒ๊ณผ JOIN์˜ ON์œผ๋กœ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์˜ ์ฐจ์ด

 

# ON์ ˆ์˜ ๊ฒฝ์šฐONLINESALE.USERID = USERINFO.USERID AND GENDER IS NOT NULL ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ JOINํ•˜์—ฌ ๋ณด๋‹ค ์ ์€ ๋ฐ์ดํ„ฐ๋“ค๋งŒ ๊ฐ€์ ธ์˜ค๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

 

# WHERE์ ˆ์˜ ๊ฒฝ์šฐ, ์กฐ์ธ ํ›„ ๋งˆ์ง€๋ง‰์— ํ•„ํ„ฐ๋ง์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„ ์ˆ˜๋ก ํ•„ํ„ฐ๋ง ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง‘๋‹ˆ๋‹ค.

์ฆ‰, JOIN์„ ํšจ๊ณผ์ ์œผ๋กœ ํ•˜๊ธฐ ์œ„ํ•ด์„œ WHERE์ ˆ ๋ณด๋‹ค๋Š” ON์ ˆ์— ํ•˜๋Š” ๊ฒŒ ๋” ํšจ์œจ์ ์ธ ์ฟผ๋ฆฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

JOINํ•˜๋Š” ํ…Œ์ด๋ธ”์ด 10๊ฐœ์ •๋„๋กœ ์—„์ฒญ ๋งŽ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ ON์ ˆ์„ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด,
์—„์ฒญ๋‚˜๊ฒŒ ๋ฐฉ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ WHERE๋ฌธ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

๐Ÿ’ช ๋งˆ์น˜๋ฉด์„œ

๋‹ค์Œ์—๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ๋กœ ์ฐพ์•„๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค!

์•ˆ๋…• :))

 

 

 

 

๋ฐ˜์‘ํ˜•