52. ๐Ÿฉธ [SQL ์ฝ”ํ…Œ] ๋ฐ˜๋ณต๋˜๋Š” ์ž‘์ง€๋งŒ critical ํ•œ ์‹ค์ˆ˜๋“ค

Jasonยท2026๋…„ 1์›” 25์ผ

SQL

๋ชฉ๋ก ๋ณด๊ธฐ
35/47

SQL ๋‚ด๊ฐ€ ํ‹€๋ฆฐ ๊ฒƒ๋“ค #52 โ€” ์ฝ”ํ…Œ ์ค€๋น„ํ•˜๋ฉฐ ๋ฐ˜๋ณต๋˜๋Š” ์‹ค์ˆ˜ ๋ชจ์Œ

๐Ÿ”ด ์˜ค๋Š˜ ๋ฐ˜๋ณต๋œ ์‹ค์ˆ˜๋“ค

1. ์ปฌ๋Ÿผ๋ช… ํ‹€๋ฆผ (๊ฐ€์žฅ ๋งŽ์ด!)

ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ๋‚ด๊ฐ€ ์“ด ๊ฒƒ
experienceyear
nightsnight
member_idmember
visited_atvisitied_at
reserved_atreservation_at

๐Ÿ’ก ๊ตํ›ˆ:

์ปฌ๋Ÿผ๋ช…์€ ์™ธ์›Œ์„œ ์“ฐ์ง€ ๋ง๊ณ , ํ…Œ์ด๋ธ” ์ •์˜ ๋ณด๋ฉด์„œ ๊ทธ๋Œ€๋กœ ์“ฐ์ž!


2. ๋ณ„์นญ ์˜คํƒ€/ํ˜ผ๋™

-- ๋‚ด๊ฐ€ ์“ด ๊ฒƒ
left join promotions pm on pm.product_id = pr.id  -- โŒ pr ์—†์Œ!
s.name  -- โŒ s๋Š” sales์ธ๋ฐ sales์— name ์—†์Œ!

-- ์ •๋‹ต
left join promotions pm on pm.product_id = pd.id  -- โœ… pd
st.name  -- โœ… st๋Š” stores

๐Ÿ’ก ๊ตํ›ˆ:

๋ณ„์นญ ์ •ํ•˜๋ฉด ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ! ์“ฐ๊ธฐ ์ „์— ํ•œ ๋ฒˆ ๋” ํ™•์ธ!


3. ํ…Œ์ด๋ธ” JOIN ๋ˆ„๋ฝ

-- ํ…Œ์ด๋ธ” 3๊ฐœ์ธ๋ฐ JOIN 2๊ฐœ๋งŒ ํ•จ
FROM employees e
JOIN sales s ON s.employee_id = e.id
-- โŒ stores ํ…Œ์ด๋ธ” ๋น ์ง!

๐Ÿ’ก ๊ตํ›ˆ:

ํ•„์š”ํ•œ ํ…Œ์ด๋ธ” ๊ฐœ์ˆ˜ = JOIN ๊ฐœ์ˆ˜ ํ™•์ธํ•˜์ž!


4. ๋ฌธ์ œ ์กฐ๊ฑด ๋นผ๋จน์Œ

-- ๋ฌธ์ œ: "3๊ฑด ์ด์ƒ", "์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ"
WHERE rn_desc = 2
-- โŒ order_cnt >= 3 ๋น ์ง!
-- โŒ ORDER BY ๋น ์ง!

๐Ÿ’ก ๊ตํ›ˆ:

๋ฌธ์ œ ์กฐ๊ฑด ๋๊นŒ์ง€ ์ฝ๊ณ , ์ฒดํฌํ•˜๋ฉด์„œ ์ฟผ๋ฆฌ ์ž‘์„ฑ!


5. CTE ๋ณ„์นญ โ‰  SELECT ์ปฌ๋Ÿผ๋ช…

-- CTE์—์„œ
DATE_FORMAT(reserved_at, '%Y-%m-%d %T') AS reserved_at

-- SELECT์—์„œ
SELECT reservation_at  -- โŒ ์ด๋ฆ„ ๋‹ค๋ฆ„!
SELECT reserved_at     -- โœ… ์ผ์น˜!

๐Ÿ’ก ๊ตํ›ˆ:

CTE์—์„œ AS๋กœ ์ •ํ•œ ์ด๋ฆ„ = SELECT์—์„œ ์“ฐ๋Š” ์ด๋ฆ„!


6. GROUP BY ๋นผ๋จน์Œ

-- ๋‚ด๊ฐ€ ์“ด ๊ฒƒ
GROUP BY st.name  -- โญ• ๋™์ž‘์€ ํ•จ

-- ๋” ์•ˆ์ „ํ•œ ๊ฒƒ
GROUP BY st.id, st.name  -- โœ… id + name ๋‘˜ ๋‹ค!

๐Ÿ’ก ๊ตํ›ˆ:

GROUP BY์— PK(id) + name ๋‘˜ ๋‹ค ์“ฐ๋ฉด ์•ˆ์ „!


โœ… ์‹ค์ „ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

์ฟผ๋ฆฌ ์ œ์ถœ ์ „์— ํ™•์ธํ•˜์ž!

ํ•ญ๋ชฉ์ฒดํฌ
์ปฌ๋Ÿผ๋ช… ํ…Œ์ด๋ธ” ์ •์˜์™€ ์ผ์น˜?โฌœ
๋ณ„์นญ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ผ๋‚˜?โฌœ
ํ•„์š”ํ•œ ํ…Œ์ด๋ธ” ๋‹ค JOIN ํ–ˆ๋‚˜?โฌœ
๋ฌธ์ œ ์กฐ๊ฑด ๋‹ค ๋ฐ˜์˜ํ–ˆ๋‚˜? (N๊ฐœ ์ด์ƒ, ์ •๋ ฌ ๋“ฑ)โฌœ
CTE ๋ณ„์นญ = SELECT ์ปฌ๋Ÿผ๋ช… ์ผ์น˜?โฌœ
GROUP BY์— id + name ์žˆ๋‚˜?โฌœ

๐Ÿ”ฅ ํ•ต์‹ฌ

"๋กœ์ง์ด ๋งž์•„๋„ ์˜คํƒ€ ํ•˜๋‚˜๋ฉด 0์ !"

์ œ์ถœ ์ „ 30์ดˆ ํˆฌ์žํ•ด์„œ ์ปฌ๋Ÿผ๋ช…/๋ณ„์นญ ํ™•์ธํ•˜์ž!

profile
Data Analyst | Thoughts Become Things. ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํ•  ์ˆ˜ ์—†๋‹ค. | www.linkedin.com/in/๋ช…์ˆ˜-์ œ-7ab843200

0๊ฐœ์˜ ๋Œ“๊ธ€